처음 세팅을 하고나면 신경쓰지 않아도 되는 부분이기 때문에 익숙하지 않았다
이번에 세팅 A부터 Z까지 알아본다
스프링 부트 프로젝트를 자동으로 만들어주는 start.spring.io에 들어가서 프로젝트를 다운받는다
maven
과 gradle
, 사용언어 및 버전, 이름 등을 입력한다
Dependencies
들을 아래 ADD...
를 선택하여 추가한다Generate
를 눌러 다운로드를 받는다
zip
파일이 설치되는데 압축을 풀어 사용하는 IDE에서 연다.
Dependencies
는 다음과 같다
Spring Web
Mybatis Framework
MySQL Driver
Spring Data JDBC
application.properties
를 설정한다
# 사용할 포트 번호
server.port=9999
# 연결할 데이터베이스 서버 및 스키마
spring.datasource.url=jdbc:mysql://(서버주소)/(스키마 명)?serverTimezone=UTC&characterEncoding=UTF-8
# 해당 데이터베이스 계정
spring.datasource.username=pang
# 해당 데이터베이스 비밀번호
spring.datasource.password=1234
# mapper.xml 파일 경로
mybatis.mapper-locations=classpath:mappers/**/*.xml
mappers
폴더를 만들어 주고 xml
파일을 만든다xml
파일의 작성 규칙은 다음과 같다
SQL Mapper
파일은 XML
이기 때문에 가장 먼저 XML
선언을 한다
<?xml version="1.0" encoding="UTF-8" ?>
DTD
선언을 한다<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SQL Mapper
파일은 루트 엘리먼트 <mapper>
의 작성으로 시작하며namespace
는 연결되는 Mapper
경로를 지정해준다<mapper namespace="com.pang.practice.Mapper">
</mapper>
<mapper>
에는 mybatis
문법을 사용하고, 전체 코드는 다음과 같다<?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.pang.practice.Mapper">
<select id="test" resultType="String">
select email
from user
where uid=#{uid}
</select>
</mapper>
Controller
, Service
, Mapper
를 만들어 보았다UserController.java
package com.pang.practice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/hi")
public void test(String uid){
System.out.println(userService.test(uid));
}
}
UserServiceImpl.java
package com.pang.practice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public String test(String uid) {
return userMapper.test(uid);
}
}
UserMapper.java
package com.pang.practice;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
String test(String uid);
}
굿