MyBatis란 DAO 객체와 SQL문을 Mapping해주는 Persistence Framework
쉽게 sql문과 다른 언어가 한 파일에 섞여있지 않도록 따로 분리해 관리하는 것.
Spring MyBatis는 Spring 프레임워크와 MyBatis를 결합한 프레임워크
코드로 직접 확인해보자.
기존 MyBatis는 아래와 같이 SqlSession, SqlSessionFactory, SqlSessionFacrotyBuilder를 연동해야 한다.
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisExample {
public static void main(String[] args) {
// MyBatis 설정 파일을 로드하여 SqlSessionFactory 생성
String configFile = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(configFile);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
// SqlSessionFactory로부터 SqlSession 생성
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// SQL 문 실행
User user = sqlSession.selectOne("UserMapper.getUserById", 1);
System.out.println(user);
} finally {
sqlSession.close();
}
}
}
그에반해 Spring MyBatis는 SqlSession을 주입받아 바로 사용할 수 있다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class UserRepository {
private final SqlSession sqlSession;
@Autowired
public UserRepository(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public User getUserById(int id) {
return sqlSession.selectOne("UserMapper.getUserById", id);
}
}
https://standout.tistory.com/370
https://standout.tistory.com/372
https://standout.tistory.com/123
'JAVA > Spring' 카테고리의 다른 글
Annotation - @Builder (0) | 2023.06.25 |
---|---|
Annotation - @NoArgsConstructor (0) | 2023.06.25 |
Spring Framework vs Spring Boot 차이 (0) | 2023.06.08 |
Spring 버전별 특징 (0) | 2023.05.10 |
RestTemplate이란? (0) | 2023.05.10 |