[Spring]MyBatis

UnKnown_7·2022년 10월 11일

Spring Framework

목록 보기
7/7

[MyBatis]

  • SQL 매핑 프레임워크
  • 기존: DAO에서 sql을 작성. => JAVA+SQL 혼합된 상태에선 가독성 낮고 유지보수가 어렵다.
  • Connection 제어를 개발자가 하지 않아도 됨.
  • MVC에서 SQL 실행 후 결과를 VO에 저장 후 호출된 쪽으로 return 하지만, 자동을 VO 생성해서 처리.

[Dependency 설정]

  • MyBatis-Spring lib 추가
<!-- MyBatis -->
<!-- MyBatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
  • sqlSessionFactory Bean 추가(root-context.xml)
  • 패키지 명 변경 필요
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
</bean>
<mybatis-spring:scan base-package="org.zerock.mapper" />

[사용법]

인터페이스를 통한 사용

public interface TimeMapper {

    @Select("select sysdate from dual")
    public String getTime();

}

@RunWith(SpringJUnit4ClassRunner.class)
@Log4j2
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
public class TimeMapperTests {


    @Setter(onMethod_ = @Autowired)
    private TimeMapper timeMapper;

    @Test
    public void testGetTime() {
        log.info(timeMapper.getTime1());
    }


}

xml 파일을 통한 사용

  1. resources\com.~~~\파일명.xml 생성 후 내용 입력
  2. interface에서 생성
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.zerock.mapper.TimeMapper">
	
	<select id="getTime2" resultType="string">
		select sysdate from dual
	</select>
	
</mapper>
profile
개인 공부 요약용 블로그

0개의 댓글