오늘은 스프링 부트에서 MyBatis 연결을 하려고 합니다.
1-2 스프링 부트 MyBatis 연결
1. 스프링 부트 MyBatis 설정
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
runtimeOnly 'mysql:mysql-connector-java'
build.gradle dependencies에 위의 코드를 추가시켜줍니다.
# database
spring.datasource.url: jdbc:mysql://host:3306/DatabaseName?characterEncoding=utf8
spring.datasource.username: DatabaseName
spring.datasource.password: password
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
# mybatis
mybatis.config=mybatis-config.xml
mybatis.type-aliases-package: com.example.demo.model
mybatis.mapper-locations: mapper/*.xml
application.properties에 위에 코드를 추가 시켜줍니다. url에는 자신의 포트번호와 데이터베이스 이름을 입력해주고, 유저네임과 패스워드도 자신과 맞게 입력해줍니다. mapper-locations도 mapper. xml이 있는 파일로 설정해주면 끝입니다.
2. DataBase연결 Test
이제 DataBase연결이 잘 되었는지 Test를 해보려고 합니다. Test에 dbTest페키지를 만들고 MyBatisTest class파일을 만들어 줍니다.
package com.skylife_Transformation.dbTest;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
import java.sql.DriverManager;
public class MyBatisTest {
// MySQL Connector 의 클래스. DB 연결 드라이버 정의
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
// DB 경로
private static final String URL = "jdbc:mysql://localhost:port/name?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false";
private static final String USER = "name";
private static final String PASSWORD = "password";
@Test
public void testConnection() throws Exception {
// DBMS에게 DB 연결 드라이버의 위치를 알려주기 위한 메소드
Class.forName(DRIVER);
try {
Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println(connection);
} catch (Exception e) {
e.printStackTrace();
}
}
}
MyBatisTest파일에 위의 코드를 추가시켜줍니다. DB 커넥션이 제대로 생성되었는지를 출력해 확인해보는 과정입니다.
DB URL에 allowPublicKeyRetrieval은 클라이언트 옵션을 추가 하여 클라이언트가 서버에서 자동으로 공개 키를 요청할 수 있도록 하는 것입니다. default는 false이고 MySQL 8.0 이상은 이를 true로 지정하지 않을 시 public key retrieval is not allowed 에러가 발생할 수 있습니다. 그 뒤에 userSSL은 default는 true이고 false로 지정 시 SSL 사용을 막을 수 있다. 또한 하지만 개발, 혹은 테스트 중에서만 비활성화시키는 걸 추천합니다. 배포 시엔 useSSL를 false로 지정하기보단 SSL을 설정해주면 됩니다.
위의 Test코드를 실행하면 정상적으로 실행되는 것을 확인 할 수 있다.
참고 블로그
https://doozi0316.tistory.com/entry/Spring-Boot-MyBatis-MySQL-%EC%97%B0%EB%8F%99-%EB%B0%A9%EB%B2%95
오늘의 회고
오늘은 MyBatis연결부터 연결 테스트 까지 진행하였습니다. URL을 입력할 때 allowPublicKeyRetrieval, userSSL은 기존에 사용했었지만 개념과 사용 이유에 대해 몰랐었는데 새롭게 알게 되었습니다. 리펙토링을 진행하다가 빠진 개념 등 다시 정리하면서 가야 될 것 같습니다.
'프로젝트 > skylife_Transformation' 카테고리의 다른 글
AWS EC2 스프링부트 SpringBoot JSP 404 Not Found Error (0) | 2022.10.13 |
---|---|
1 - 3. 스프링 부트 Mapper와 Mapper 오류, Mail 전송 (0) | 2022.06.09 |
1 - 1. 스프링에서 스프링 부트와 GitHub연동 (0) | 2022.05.31 |