큰 차이는 없지만 IDEA에서 생성하는 것보다 보기 편해서 처음으로 사용하는 프레임워크가 있을 경우 Spring Boot Initializr을 사용하고는 한다.
Spring Boot Initializr
IntelliJ
1
2
3
4
5
6
7
8
//톰캣을 사용해 웹 애플리케이션을 작성하기 위한 스타터implementation'org.springframework.boot:spring-boot-starter-web'//mybatis를 사용한 테스트 코드 작성 시 필요testImplementation'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.3'//mybatis buildimplementation'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'// mysql 커넥터runtimeOnly'com.mysql:mysql-connector-j'
실행할 SQL을 정의한 파일로 parameter Object (ex. UserDao)를 받아오거나 result Type (ex. UserDto)에 실행 결과를 자동 바인딩하는 기능을 제공한다.
id와 메소드명이 다르면 에러가 발생하기 때문에 주의해야 한다.
상단의 <\?xml …>과 <!DOCTYPE ..>을 적지 않으면 mapping 되지 않으니 주의해야 한다.
해당 sql을 실행하면 user 테이블에서 id가 3인 행의 id와 name을 반환한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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"><mappernamespace="com.example.mybatis.user.repository.UserDao"><selectid="getUser"resultType="UserDto">
SELECT id as userId
,name as userName
FROM
user
where id = 3
</select></mapper>
parameterType과 resultType에 wrapper 자료형을 사용할 수 있다. 다만, 필자는 resultType에 int나 Integer를 넣을 때는 반환되지 않다가 integer를 넣으니까 반환되는 것을 경험했다.