BackEND/Java

spring boot gradle mybatis 연동

mingmingIT 2020. 12. 9. 14:42

1. build.gradle

아래와 같이 추가하고 refresh gradle project 

dependencies {
    // MyBatis
    compile "org.springframework.boot:spring-boot-starter-jdbc:2.0.1.RELEASE"
    compile "mysql:mysql-connector-java:5.1.46"
    compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1"
    compile "org.mybatis:mybatis-spring:1.3.1"
    compile "org.mybatis:mybatis:3.4.5"
}

 

2. AbstractMapper Create

query 를 수행하기 위해 Spring의 Mybatis 연동 지원 공통 클래스를 만든다. 

AbstractMapper.java
0.01MB

3. UserMapper Create

package com.mapper;

import java.util.HashMap;
import org.springframework.stereotype.Repository;
import com.common.mapper.AbstractMapper;

@Repository("userMapper")
public class UserMapper extends AbstractMapper{
	public String getUserid(HashMap<String, Object> param) {
		return selectOne("mapper.UserMapper.getUserid", param);
	}
}

AbstractMapper 를 상속받아서 위와 같이 Mapper.java를 만든다.

4. mapper xml Crete

<?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="mapper.UserMapper">
    
    <select id="getUserid" parameterType="java.util.HashMap" resultType="java.lang.String">
		SELECT u.user_id
		FROM userinfo u
		WHERE u.user_id = #{user_id}
    </select>
    
</mapper>

UserMapper 에서 호출을 할때는 "namespace"를 맞춰서 호출을 한다.

5. application.yaml 수정

mapper 경로를 찾을수 있게 아래와 같이 경로를 넣어준다.

mybatis:
    mapper-locations: classpath:mapper/**/**.xml