본문 바로가기

개발(합니다)/Java&Spring

[spring boot 설정하기-3.1] Mybatis 설정 및 사용 방법

반응형

소스와 쿼리의 분리하여 비즈니스 로직에만 집중할 수 있도록 만든 mybatis입니다.

mybatis 사이트를 가니 MyBatis Spring-boot-starter를 사용하라고 합니다.

mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

링크를 클릭하면 설정과 사용 방법이 설명되어 있습니다.


1. 의존성 추가

dependencies {
  compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3")
  compile('org.springframework.boot:spring-boot-starter-jdbc')
}

2. application.yml 설정

mybatis:
  type-aliases-package: com.otrodevym.spring
  mapper-locations: mybatis/mapper/**/*.xml

3. mybatis-config.xml 파일 생성 및 설정

mybatis 설정을 할 수 있는 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>
    <mappers>
        <mapper resource="TestMapper.xml"/>
    </mappers>
</configuration>

4. 테스트 테이블 생성 및 데이터 추가

create table test (
    num int not null auto_increment,
    name char(50) not null,
    primary key (num)
    );

insert into test(name) values ('kim');



select * from test;

5. Mybatis 연동 테스트

테스트를 위해 spring-web을 의존에 추가합니다.

implementation 'org.springframework.boot:spring-boot-starter-web'

결과 파일들

5-1. MybatisTestController

@RestController
public class MybatisTestController {
    private MybatisTestService testService;

    @Autowired
    public MybatisTestController(MybatisTestService testService) {
        this.testService = testService;
    }

    @GetMapping("/getTest")
    public List<Map<String, Object>> getTest() {
        return testService.getTest();
    }
}

5-2. MybatisTestService

public interface MybatisTestService {
    List<Map<String, Object>> getTest();
}

5-3. MybatisTestServiceImpl

@Service
public class MybatisTestServiceImpl implements MybatisTestService{
    private MybatisTestMapper mybatisTestMapper;

    @Autowired
    public MybatisTestServiceImpl(MybatisTestMapper mybatisTestMapper) {
        this.mybatisTestMapper = mybatisTestMapper;
    }

    @Override
    public List<Map<String, Object>> getTest() {
        return mybatisTestMapper.getTest();
    }
}

5-4. MybatisTestMapper

@Repository
@Mapper
public interface MybatisTestMapper {
    List<Map<String, Object>> getTest();
}

5-5. MybatisTestMapper.xml

<?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="com.otrodevym.spring.base.common.MybatisTestMapper">
    <select id="getTest" resultType="java.util.HashMap">
        SELECT * FROM test;
    </select>
</mapper>

5-6. localhost:8080/getTest 호출

반응형