[JDBC]Mybatis설정방법 및 적용예제2
Devel/JDBC2020. 8. 20. 15:05
반응형
+예제
1.Mapper.xml 에 select 하나 더 추가 id = selsect 하나 더 추가
selectBydeptno resultType=??
select deptno, dname, loc from dept where deptno = 10
2. Main ->service->dao 에서 Mapper의 selectBydeptno 를 사용하는 함수 만들어 결과 메인에 리턴 받아 출력해 보기
-configuration
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="tiger"/> </dataSource> </environment> </environments> <mappers> <mapper resource="DeptMapper.xml"/> </mappers> </configuration> |
-Dept class 구성
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package com.dto; // Dept테이블의 하나의 레코드 저장용도 public class Dept { private int deptno; private String dname; private String loc; public Dept() { super(); // TODO Auto-generated constructor stub } public Dept(int deptno, String dname, String loc) { super(); this.deptno = deptno; this.dname = dname; this.loc = loc; } public int getDeptno() { return deptno; } public void setDeptno(int deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } @Override public String toString() { return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]"; } } |
-OracleMybatisDAO
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.dao; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.dto.Dept; public class OracleMybatisDAO { public List<Dept> selectAll(SqlSession session) { //<select id="selectAll" List<Dept> list= session.selectList("selectAll"); return list; } public List<Dept> selectBydeptno(SqlSession session) { //<select id="selectAll" List<Dept> list= session.selectList("selectBydeptno"); return list; } } |
.png)
1 2 3 4 5 | public Dept selectBydeptno(SqlSession session) { //<select id="selectAll" Dept dept= session.selectOne("selectBydeptno"); return dept; } |
-OracleMyBatisService
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package com.service; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.config.MySqlSessionFactory; import com.dao.OracleMybatisDAO; import com.dto.Dept; public class OracleMyBatisService { OracleMybatisDAO dao; public OracleMyBatisService() { dao = new OracleMybatisDAO(); } public List<Dept> select() { SqlSession session = MySqlSessionFactory.getSession(); List<Dept> list = null; try { list = dao.selectAll(session); } finally { session.close(); } return list; }// end class public List<Dept> selectBydeptno() { SqlSession session = MySqlSessionFactory.getSession(); List<Dept> list = null; try { list = dao.selectBydeptno(session); } finally { session.close(); } return list; } } |
.png)
1 2 3 4 5 6 7 8 9 10 11 | public Dept selectBydeptno() { SqlSession session = MySqlSessionFactory.getSession(); Dept dept = null; try { dept = dao.selectBydeptno(session); } finally { session.close(); } return dept; } |
-DeptMapper
.png)
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectAll" resultType = "com.dto.Dept"> select deptno, dname, loc from dept </select> <select id="selectBydeptno" resultType = "com.dto.Dept"> select deptno, dname, loc from dept where deptno = 10 </select> </mapper> |
-main
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import java.util.List; import com.dto.Dept; import com.service.OracleMyBatisService; public class OracleMyBatisMain { public static void main(String[] args) { // TODO Auto-generated method stub OracleMyBatisService service = new OracleMyBatisService(); List<Dept> list = service.select(); for(Dept dept : list) { System.out.println(list); } System.out.println("selectBydeptno"); List<Dept> list1 = service.selectBydeptno(); for(Dept dept : list1) { System.out.println(dept); } } } |
.png)
-
.png)
-dao
.png)
-service
.png)
-main
.png)
-매퍼설정 : Properties
.png)
.png)
.png)
.png)
.png)
.png)
-
.png)
.png)
1 2 3 4 5 | #key = value oracle.jdbc = oracle.jdbc.driver.OracleDriver oracle.url = jdbc:oracle:thin:@localhost:1521:orcl oracle.userid = scott oracle.passwd =tiger |
-Configuration
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration <configuration> <!-- jdbc.jdbc.proproperties파일 등록 --> <properties resource="jdbc.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${oracle.jdbc}"/> <property name="url" value="${oracle.url}"/> <property name="username" value="${oracle.userid}"/> <property name="password" value="${oracle.passwd}"/> <!-- 기존사용하던 4가지 정보 <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="scott"/> <property name="password" value="tiger"/> --> </dataSource> </environment> </environments> <mappers> <mapper resource="DeptMapper.xml"/> </mappers> </configuration> |
-OracleMybatisDAO
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.dao; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.dto.Dept; public class OracleMybatisDAO { public List<Dept> selectAll(SqlSession session) { //<select id="selectAll" List<Dept> list= session.selectList("selectAll"); return list; } public void insert(SqlSession session,Dept dept) { //<select id="selectAll" int num = session.insert("deptInsert",dept); System.out.println("추가된 레코드 ===="+ num); } } |
-DeptMapper
.png)
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectAll" resultType="com.dto.Dept"> select deptno, dname, loc from dept </select> <select id="deptInsert" parameterType ="com.dto.Dept"> insert into dept(deptno, dname, loc) values (#{deptno},#{dname},#{loc}) </select> </mapper> |
-OracleMyatisService
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package com.service; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.config.MySqlSessionFactory; import com.dao.OracleMybatisDAO; import com.dto.Dept; public class OracleMyBatisService { OracleMybatisDAO dao; public OracleMyBatisService() { dao = new OracleMybatisDAO(); } public List<Dept> select() { SqlSession session = MySqlSessionFactory.getSession(); List<Dept> list = null; try { list = dao.selectAll(session); } finally { session.close(); } return list; } public void insert(Dept dept) { //<select id="selectAll" SqlSession session = MySqlSessionFactory.getSession(); try { dao.insert(session, dept); } finally { session.close(); } } }// end class |
-main
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.util.List; import com.dto.Dept; import com.service.OracleMyBatisService; public class OracleMyBatisMain { public static void main(String[] args) { // TODO Auto-generated method stub OracleMyBatisService service = new OracleMyBatisService(); // List <Dept> list =service.select(); // for(Dept dept :list) { // System.out.println(dept); // } service.insert(new Dept(17,"김길동","제주")); } } |
'Devel > JDBC' 카테고리의 다른 글
[JDBC] mapper 2개로 분리, JDBC에 HashMap 적용, ArrayList적용 예제 (0) | 2020.08.21 |
---|---|
[JDBC]실행결과 SQL에 반영 안될때, 다양한 SQL문 Mybatis 이용하여 JDBC 적용 예제 (0) | 2020.08.21 |
[JDBC]Mybatis설정방법 및 적용예제 (0) | 2020.08.20 |
[JDBC]Connection 객체 분리, 클래스 분리 실습예제 (0) | 2020.08.20 |
[JDBC] 2 table Join, group by 사용하는 방법 및 적용예제 (0) | 2020.08.19 |
댓글()