데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해
xml로 구조화한 Mapper설정파일을 통해
JDBC를 구현한 영속성 프레임 워크
기존에 JDBC를 통해 구현했던
상당 부분의 코드와 파라미터 설정 및 결과 매핑을
xml설정을 통해 쉽게 구현할 수 있게 함
이전에 JDBC Template을 통해 SQL을 실행하였다면
MyBatis는 해당 흐름을 전용 라이브러리를 통해 대체하여 동작함
DAO에서 MyBatis설정 파일이 들어감
DB와 연결하기 위한 Connection대신 SqlSession이 필요함 (같은 기능)
-MyBatis 활용 객체 생성하는 법
SqlSession FactoryBuilder (Object) |
→ 생성 build(inputStream) |
SqlSession Factory (Object) |
→ 생성 openSession() |
SqlSession (Object) |
→ 실행 |
selectOne selectList selectMap insert update delete |
↓참조 mybatis-config.xml -Class의 Alias(별칭) 설정 -DB연결 설정 -sql 구문 경로 설정 |
↓참조 mapper.xml -sql 쿼리문 설정 (인자 값, 결과 값, 데이터 타입 등 설정) *각 패키지마다 존재(게시판, 멤버 패키지 등) |
package common;
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 Template {
public static SqlSession getSqlSession() {
// 커넥션 대신 사용! myBatis jar 파일 lib에 추가해야 import 가능
SqlSession session = null;
try {
InputStream inputStream = Resources.getResourceAsStream("/mybatis-config.xml");
// SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
// SqlSessionFactory ssf = ssfb.build(inputStream);
// session = ssf.openSession(false); // 자동커밋하지마
session = new SqlSessionFactoryBuilder().build(inputStream).openSession(false); // 메소드체이닝
// close, commit, rollback은 따로 구현할 필요 없음
} catch (IOException e) {
e.printStackTrace();
}
return session;
}
}
mybatis-config.xml - 마이바티스 전체 설정정보 작성하기 (1) | 2021.03.14 |
---|
댓글 영역