진이의 Developer Story
(3) Spring+MyBatis 게시판 만들기 - MyBatis 셋팅 본문
지난 DB셋팅 포스트에 이어 MyBatis 셋팅입니다.
(1) mapper-context.xml
<!--?xml version="1.0" encoding="UTF-8"?-->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- mybatis sql session template -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="/WEB-INF/sqlmap/mappers/*Mapper.xml"/>
<property name="configLocation" value="/WEB-INF/sqlmap/mybatis-config.xml"/>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactory"/>
</bean>
<!-- mybatis mapper auto scanning -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.sample.board.service"/>
</bean>
</beans>
/WEB-INF/spring 디렉토리에 mapper-context.xml 파일을 생성합니다.
/WEB-INF/ 디렉토리에 sqlmap 디렉토리를 생성해주시고, sqlmap 디렉토리에 mappers 디렉토리를 생성해주세요!
여기서 잠깐! mapper-context의 내용을 읽을 수 있는 이유는?
지난 포스트에서 web.xml에서 컨텍스트 파라미터를 수정해줌으로써 mapper-context.xml을 읽을 수 있게 되었습니다.
MyBatis를 사용하기 위해서 필요한 빈은 2가지입니다.
바로 SqlSessionFactoryBean과 SqlSessionTemplate인데 위와 같이 적어줍니다.
지금은 설정방법만 알아보겠으며, MyBatis의 원리가 궁금하신 분은 구글링을... ^^
SqlSessionFactoryBean에 dataSource 프로퍼티가 있는데 ref값에 dataSource를 적습니다.
ref에 들어가는 값은 bean이 들어갈 수 있습니다.
위에서 적은 dataSource는 지난 시간 MySQL DataSource 빈을 설정하였죠?
그 빈의 값이 SqlSessionFactoryBean의 dataSource 프로퍼티로 들어가는겁니다.
configLocation은 MyBatis 설정파일의 경로입니다.
mapperLocation은 매핑파일들의 경로입니다.
아까 생성한 sqlmap 디렉토리에 mybatis-config.xml 파일을 생성해주세요.
<!--?xml version="1.0" encoding="UTF-8"?-->
<configuration>
<settings>
<setting name="cacheEnabled" value="false"/>
<setting name="useGeneratedKeys" value="true"/>
<setting name="defaultExecutorType" value="REUSE"/>
</settings>
<typealiases>
<typealias alias="board" type="com.sample.board.vo.BoardVO"/>
</typealiases>
</configuration>
위의 내용을 COPY&PASTE 해주시고... ^^
MyBatis 자세한 설정은 MyBatis 셋팅에서 참고해주세요.
여기서는 typeAlias 만 짚고 넘어가겠습니다.
곧 VO를 작성하게 되는데요, MyBatis에서 파라미터 및 리턴타입으로 사용될 클래스 이름을 풀네임(패키지+Class이름)으로 적어주어야 하지만 별명으로 지정해줌으로써 짧게 사용할 수 있다는 점만 알아두시면 될 것 같습니다.
(2) BoardMapper.xml
다음으로 앞에서 생성한 mappers 디렉토리에 BoardMapper.xml 파일을 생성합니다.
<!--?xml version="1.0" encoding="UTF-8"?-->
<mapper namespace="com.sample.board.service.BoardMapper">
<resultmap id="boardMap" type="com.sample.board.vo.BoardVO">
<result property="idx" column="idx"/>
<result property="title" column="title"/>
<result property="content" column="content"/>
<result property="id" column="id"/>
<result property="hit" column="hit"/>
<result property="date" column="date"/>
</resultmap>
<select id="getBoardList" resultmap="boardMap">
SELECT
idx, title, content, id, hit, date
FROM BOARD
</select>
</mapper>
자세한 사용방법은 MyBatis3 매퍼 설정 에서 확인해주세요.
해당 부분에서는 차후에 다시 설명하도록 하겠습니다.
다음 포스트에서는 클래스를 작성해보겠습니다.
'Java > Spring' 카테고리의 다른 글
(5) Spring+MyBatis 게시판 만들기 - VIEW 작성 (17) | 2016.01.20 |
---|---|
(4) Spring+MyBatis 게시판 만들기 - 클래스 작성 (12) | 2016.01.20 |
(2) Spring+MyBatis 게시판 만들기 - DB 셋팅 (0) | 2016.01.20 |
(1) Spring+MyBatis 게시판 만들기 - 프로젝트 구성 (1) | 2016.01.20 |
MyBatis Error (0) | 2016.01.18 |