MyBatis와 스프링 연동

예지성준·2024년 7월 10일

스프링프레임워크

목록 보기
6/14
post-thumbnail

JDBC와 커넥션 풀 설정
1. JDBC 연결

  1. 커넥션 풀 설정
    1) Tomcat JDBC를 사용한 설정
    2) HikariCP를 사용한 설정

MyBatis와 스프링 연동

1. MyBatis 관련 라이브러리 추가

implementation 'org.mybatis:mybatis:3.5.16'

implementation 'org.mybatis:mybatis-spring:3.0.3'

1) spring-jdbc/spring-tx

2) mybatis/mybatis-spring

2. SQLSessionFactory

sqlSession

sqlSessionFactory

  • Appctx 설정클래스에 Bean추가
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());

        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBean.getObject();
        return sqlSessionFactory;
    }
  • mybatis-spring
    • SqlSessionFacotryBean
      -> setDataSource()

@Bean

@MapperScan -> 범위 설정

3. 스프링과의 연동 처리

1) Mapper 인터페이스

logback.xml에 logger 추가

<logger name="mappers" level="DEBUG"/>

2) XML 매퍼와 함께 사용

xml 폴더 위치를 맞춰야한다!

...
    <insert id="register">
        INSERT INTO MEMBER (SEQ, EMAIL, PASSWORD, USER_NAME)
            VALUES(SEQ_MEMBER.NEXTVAL, #{email}, #{password},#{userName})
    </insert>
    
    <select id="get" resultMap="memberMap">
        SELECT SEQ, EMAIL, PASSWORD, USER_NAME, REG_DT FROM MEMBER WHERE EMAIL = #{email}
    </select>
    
    <select id="exists" resultType="int">
        SELECT COUNT(*) FROM MEMBER WHERE EMAIL = #{email}
    </select>
    ...

MemberMapper인터페이스

public interface MemberMapper {
    @Select("SELECT COUNT(*) FROM MEMBER")
    long getTotal();

    int register(Member member);
    Member get(String email);
    int exists(String email);
}

4. slf4j 설정

Mybatis 활용하기

profile
꽁꽁 얼어붙은 한강 위로 😺

0개의 댓글