티스토리 뷰
마이바티스(mybatis) 구성
환경설정파일( 마이바티스 정반에 걸친 셋팅 ) - 매핑설정 파일이 어디에 있는지 - 디비에 어떻게 접속 할껀지 - 사용할 모델클래스들에 대한 별명 매핑 설정 파일 - 사용할 sql문들에 대한 정의 Session빌드 및 사용 - 실제 sql문 실행 |
1. pom.xml [ pom에 dependency 추가 - mysql, mybatis ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> </dependencies> | cs |
2. xml 설정 파일 만들기
3.Mybatis홈페이지에서 configuration 가져와서 만든 xml에 추가해주기
mybatis 홈페이지 - http://www.mybatis.org/mybatis-3/ko/getting-started.html
기본 xml 화면
model 만들기!!
db table에 맞는 모델 클래스를 생성해주자
mapper.xml 만들기!!
먼저 xml 파일을 만들고
mybatis홈페이지에서 구문을 가져오고
주석 참고
2~4번 줄에 별표된걸 꼭 넣어주자!!
mapper.xml에 는 주석과 같이 sql문을 등록해서 가져다 사용할 수 있다.
configuration 정보 주입!!
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 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- DB모델 설정 --> <typeAliases> <typeAlias type="model.Dept" alias="dept" /> <!--<package name="model"/>을 사용하면 모델 패키지 정보를 다 불러옴(클래스 맨 첫글자를 소문자인 형태로 저장)--> </typeAliases> <environments default="development"> <environment id="development"> <!-- transactionManager --> <!-- JDBC는 수동, MANAGED는 자동 --> <transactionManager type="JDBC" /> <!-- dataSource --> <!-- POOLED 이 구현체는 매번 초기화 하는 것을 피하게해줌, 빠른 응답 요구하는 웹 애플리케이션에서 가장 흔히 사용 --> <!-- UNPOOLED 이 구현체는 매번 요청에 대해 커넥션을 열고 닫는 간단한 DataSource 이다. --> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost/DB테이블"></property> <property name="username" value="root"></property> <property name="password" value="*****"></property> </dataSource> </environment> </environments> <!-- Mapper설정 --> <mappers> <mapper resource="dao/deptMapper.xml" /> </mappers> </configuration> | cs |
Dao.java 만들기!!
// 기본적인 dao 구성
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package dao; import java.io.IOException; import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import model.Dept; public class DeptDao { private SqlSessionFactory sqlSessionFactory; public DeptDao() { InputStream is = null; try { is = Resources.getResourceAsStream("configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public List<Dept> selectAll(){ SqlSession session = sqlSessionFactory.openSession(); try{ return session.selectList("dao.deptMapper.selectAll"); }finally { if(session != null) session.close(); } } public Dept selectOne(int deptno) { SqlSession session = sqlSessionFactory.openSession(); try { return session.selectOne("dao.deptMapper.selectOne", deptno); } finally { session.close(); } } public void insertDept(Dept dept){ SqlSession session = sqlSessionFactory.openSession(); try{ int result = session.insert("dao.deptMapper.insertDept", dept); if(result > 0) session.commit(); else session.rollback(); }finally { session.close(); } } public void updateDept(Dept dept){ SqlSession session = sqlSessionFactory.openSession(); try{ int result = session.update("dao.deptMapper.updateDept", dept); if(result > 0) session.commit(); else session.rollback(); }finally { session.close(); } } public void deleteDept(int deptno){ SqlSession session = sqlSessionFactory.openSession(); try{ int result = session.delete("dao.deptMapper.deleteDept", deptno); if(result > 0) session.commit(); else session.rollback(); }finally { session.close(); } } } | cs |
! 여기서 중요한 부분은 20번-21번(sqlSessionFactory 부분),24번중(close 부분), 38번줄(mapper에서 selectAll 쿼리 불러오는 부분)
58번-61번 부분(insert,delete,update시 commit()이 필요하다!!)
테스트 해보기!!
1 2 3 4 5 6 7 8 9 10 11 | import dao.DeptDao; import model.Dept; public class Test { public static void main(String[] args) { DeptDao dao = new DeptDao(); for(Dept d : dao.selectAll()) System.out.println(d); } } | cs |
예제 파일
반응형
'언어 > SPRING' 카테고리의 다른 글
[SPRING] sqlSessionFactoryManager - static으로 관리 (0) | 2016.11.10 |
---|---|
[SPRING] resultMap 사용 (0) | 2016.11.10 |
[SPRING] jdbcTemplate, NamedParameterJdbcTemplate (0) | 2016.11.09 |
[SPRING] @postConstruct, @PreDestory 어노테이션 (0) | 2016.11.08 |
[SPRING] @Autowired, @Qualifier 어노테이션 (0) | 2016.11.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 생성
- 음식
- 안드로이드
- Class
- 자바
- Default
- nsis
- Controller
- spring
- 하기
- java
- mysql
- Server
- 사용
- 클래스
- 종류
- 연결
- Delete
- synchronized
- Create
- 어노테이션
- UTF-8
- jsp
- 라이브러리
- iNT
- 스프링
- Android
- js
- mybatis
- jdbc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함