[JDBC]Mybatis설정방법 및 적용예제
Devel/JDBC2020. 8. 20. 15:02
반응형
Mybatis 설정
.png)
Products Mybatis 3 에서 docs->
.png)
.png)
.png)
.png)
MyBatis 흐름 이해하기->
.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.config; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MySqlSessionFactory {//template class static SqlSessionFactory sqlSessionFactory = null; static { String resource = "Configuration.xml"; InputStream inputStream=null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }//end static //SqlSession 반환해주는 메서드 // MySqlSessionFactory.getSession() public static SqlSession getSession() { SqlSession session = sqlSessionFactory.openSession(); //실제 사용자가 사용할 connection과 비슷한 객체 //클래스이름.함수이름 으로 호출 MySqlSessionFactory.getSession() return session; } }//end class |
.png)
-파일변경이나 경로 수정시
주황box만 변경
-Configuration-> 연결에 필요한 4가지 정보,,,..
.png)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers></configuration>
configuraion에 복사 source
+0번 작업
.png)
*4가지 설정하기
.png)
+
.png)
.png)
-DEPT
Dept테이블의 하나의 레코드 저장용도
.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; //멤버 변수 이름이 DB 컬럼 이름과 일치해야 한다. 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 + "]"; } } |
주의! 멤버 변수 이름이 DB 컬럼 이름과 일치해야 한다.
-service
//sqlsession 업어오기(conncection과 비슷)
//sesion을 list형식으로 받기 위해 형성
//dao의 select결과 메인으로 리턴
//list 실제 dao에 있는 session
.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 | 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(); //sqlsession 업어오기(conncection과 비슷) //sesion을 list형식으로 받기 위해 형성 List<Dept> list = null;//반환값을 준비 try { list = dao.selectAll(session);//dao에 sqlsession전송 } finally { session.close();//connection.close()와 비슷, 모든 함수마다 닫기 } return list; //dao의 select결과 메인으로 리턴 //list 실제 dao에 있는 session }// end class } |
-OracleMybatisDAO
<select id="selectAll">
//결과가 여러개인 selsect문 실행시 selectList 함수 실행
//DeptMapper.xml 의 id가 selsectAll인 sql을 수행
//DeptMapper.xml 의 id="DselectAll"인 sql
.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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"); //결과가 여러개인 selsect문 실행시 selectList 함수 실행 //DeptMapper.xml 의 id가 selsectAll인 sql을 수행 //DeptMapper.xml 의 id="DselectAll"인 sql문 실행 return list; } } |
-deptmapper
.png)
.png)
.png)
main으로 가면서 close
.png)
--error이유
SqlSession
.png)
<T>-결과가 하나일때
<E>-여러개 일때
'Devel > JDBC' 카테고리의 다른 글
[JDBC]실행결과 SQL에 반영 안될때, 다양한 SQL문 Mybatis 이용하여 JDBC 적용 예제 (0) | 2020.08.21 |
---|---|
[JDBC]Mybatis설정방법 및 적용예제2 (0) | 2020.08.20 |
[JDBC]Connection 객체 분리, 클래스 분리 실습예제 (0) | 2020.08.20 |
[JDBC] 2 table Join, group by 사용하는 방법 및 적용예제 (0) | 2020.08.19 |
[JDBC] 클래스 생성부터 분리까지 모든 예제 (0) | 2020.08.19 |
댓글()