본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA/Spring

Spring MyBatis와 MyBatis 의 차이

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

 

mybatis 3.1.0 이란?

SQL을 자바코드에서 분리해 XML등의 형태로 처리해 작성하도록 도움 pom.xml에 추가 org.mybatis mybatis 3.1.0 https://mvnrepository.com/artifact/org.mybatis/mybatis/3.1.0

standout.tistory.com

https://standout.tistory.com/372

 

mybatis-spring 1.1.0 이란?

SqlSessionFactory를 생성하고 SqlSession을 관리해 Mybatis와 스프링의 쉬운연동을 도움 pom.xml에 추가 org.mybatis mybatis-spring 1.1.0 https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.1.0

standout.tistory.com

https://standout.tistory.com/123

 

Spring이란?

Spring Spring Framework 스프링프레임워크라고도 불린다. 자바 웹 애플리케이션을 생성하기위한 오픈소스, 경량 프레임워크이면서 경량 컨테이너 https://spring.io/ Spring | Home Cloud Your code, any cloud—we’ve

standout.tistory.com

 

'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