하지만 이번 개인프로젝트에 Spring boot를 적용하면서 기존의 방법과는 조금 다르게 설정을 해야한다는 것을 알았다. 이에 설정 내용을 남긴다.
--------------------------------------------------------------------------------------------
1. 프로젝트 구조
2. pom.xml
3. application.properties
4. mybatis-config.xml
5. mapper.xml
6. Dao
1. 프로젝트 구조
프로젝트는 Maven으로 구성되어 있으며, 다음의 구조를 갖는다.
2. pom.xml
- mybatis에서는 spring boot와의 연계를 위해 기존의 방법을 제외한 다른 방법을 제안하고 있다. (http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure)
- MyBatis와의 연결은 하나의 dependency만 추가해주면 된다.
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
3. application.properties
- Datasource에 대한 정보는 appication.properties에 작성한다. spring boot에서는 자동으로 Datasource를 생성하여 데이터를 주입한다.
#Datasource
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://222.238.108.219:13306/[DB_NAME]
spring.datasource.username=[USERNAME]
spring.datasource.password=[PASSWORD]
#MyBatis
mybatis.config-location=classpath:config/mybatis-config.xml
4. mybatis-config.xml
- src/main/resources에 config폴더를 만들고 mybatis-config.xml을 작성했다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<typeAlias alias="member" type="net.ju.blog.mvc.member.domain.Member"/>
</typeAliases>
<mappers>
<mapper resource="mappers/member.xml"/>
</mappers>
</configuration>
5. member.xml
- src/main/resoources에 mapper폴더를 만들고 각 도메인(or VO, DTO) 클래스에 해당하는 이름의 xml(mapper라고 부른다)를 만든다.
<?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="member">
<select id="selectMemberId" parameterType="member" resultType="_int">
SELECT
COUNT(*)
FROM
member
WHERE
member_id = #{memberId}
</select>
</mapper>
6. Dao
- Dao는 기존의 것과 다르지 않다.
@Repository
public class MemberDao {
@Autowired
private SqlSession sqlSession;
public int selectMemberId(Member member) {
return sqlSession.selectOne("member.selectMemberId", member);
}
}
댓글 없음:
댓글 쓰기