[Spring] Mybatis + Mysql 연동하면서 생긴 문제들

최성민·2021년 7월 8일
0

Spring

목록 보기
4/9

1) Unknown database

application.properity

java.sql.SQLSyntaxErrorException: Unknown database 'backend_db;'

이때 왜 에러가 났는지 알아챘어야했는데...

'backend_db;'

;가 있다 !!! ;가!!!!!
단순히 backend_db가 없다고 뜨는줄알고 이것저것 삽질을 했다.


아래 과정은 ;가 문제인걸 모르고 문제를 찾을려는 과정이다.

  1. Mysql에 'backend_db'가 존재한다

  2. show databases 로 확인해도 보인다

  1. 아래 useUnicode를 치면 된다고해서 쳤는데 오히려 에러가 뜬다.
    이거는 나중에 다시 봐야할거같다 왜냐면 서버는 character set을 utf8로 했지만
    클라이언트는 enkr? 이어서
    (확인하는 명령어 : status)

spring.datasource.url = jdbc:mysql://localhost:3306/backend_db?useUnicode=true&characterEncoding=utf8;

Caused by: com.mysql.cj.exceptions.WrongArgumentException: Unsupported character encoding 'utf8;'

  1. ;를 빼니까 된다....

4-1. ;를 쓸거면 ""를 써야하는데 굳이 ""쓰지말고 깔끔하게 하자


2) Column 'id' cannot be null

id는 UUID.Random으로 new User시에 자동으로 생성되어 입력된다.

분명 생성자에서 존재하는데... null이 아닌데!! 왜지??

new User를 @Test안에서 하니까 된다!

@Before가 제대로 동작안한거다 왜?

알고보니 @Before는 Junit4에서 쓰는 어노테이션이고 내가 쓰는 springboot 버전은 2.5.2
2.2.x부터는 Junit5가 들어가있다고한다.

dependency 참고 : https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes3

만약에 2.2.x 버전 이상에서 Junit4을 쓰고싶다면 아래 주석을 풀고 하면된다

profile
공부합시다

0개의 댓글