코드를 열심히 작성하고 실행해보니, 한글이 깨져서 보이는 문제가 발생했다.
mysql에 데이터를 넣는 코드였는데, 실행하는 console에서도 한글이 깨지고
mysql DB 테이블 상에서도 한글이 깨져서 들어가 있는 것을 확인했다.
전에도 한 번 깨진 적이 있어서 전에 해결했던 방법을 사용하려고 했다.
(1) Settings의 Editer - File Encodings
여기서 Encoding 방식을 UTF-8 방식으로 설정해주는 방법이다.
이렇게 설정해도 변화가 없었다 .. 그렇다면 다음 방법을 사용해보자.
(2) 상단의 Help - Edit Custom VM Options..
해당 옵션을 들어가서 맨 아랫줄에
-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8
코드를 추가해준다.
.. 음.. 그런데도 해결이 되지 않았다.
(3) Gradle을 clean하고 build하기
오른쪽에 Gradle 탭을 눌러서 Tasks의 build로 들어간다.
그런 다음 clean을 먼저 실행해주고, 완료되면 build를 실행해준다.
그래도 ..!! 그런데도 해결이 되지 않았다 ..
다른 방법을.. 찾아보자 !!
명령 프롬프트에서 mysql을 실행하고 해당 문장을 입력하고 실행해보았다.
char로 시작하는 Variable_name을 보여준다.
여기서 Value가 utf8로 되어있어야 하는데, 나는 .. 아닌 것들이 있었다.
my.ini 파일에서 바꿀 수 있었다..!!
출처: https://co-deok.tistory.com/66
출처: https://hoing.io/archives/13254
한글이 깨져서 출력되고, 데이터가 저장이 되는 바람에 좀 시간을 뺏겼지만
해결할 수 있는 방법이 있어 다행이다 !
기본 설정을 UTF-8로 바꿔서 깨질 일이 더 없을 것 같기는 하지만 혹시나 다음에 또 한글이 깨져서 출력된다면 해결할 수 있을 것 같다.
뭔소리야 이게 ,, 데이터베이스 잘 .. 쓰고있었는데 ..? 무슨일인가 ..?
test코드 수행을 하기 전에 만들어두었던 테이블을 drop하고 실행해야 해서
테이블들을 drop 하려고 했는데, 저런 오류가 뜨면서 drop되지 않았다 ..
잘 연결해서 사용하고 있었는데 갑자기 왜그러지?
찾아보니 비슷한 오류를 겪으신 분이 계셨다.
위의 오류는 내가 데이터베이스를 선택하지 않았다는 의미인데,
아무리 생각해도 데이터베이스를 연결을 해놨다가 갑자기 연결이 풀렸나 ..? 싶었지만
mysql 창에서
use 데이터베이스이름;
을 실행해주었다. Database changed를 확인했고, 다시 실행해보았다.
출처: https://dalpeng2.tistory.com/84
아주 화려한 오류가 발생했다 .. 이번엔 또 뭐지 .. ㅎ
정말 .. 한 번에 코드를 완성하는 법이 없다.
위쪽에 보면
Duplicate entry '6' for key ...
내용이 있다. 해당 내용을 검색해보았다.
이는 Insert나 Update를 하려고 하는 경우에 많이 접하게 되는 문구라고 한다.
출처: https://codinghero.tistory.com/24
그래서 테이블에 들어간 내용을 다시 살펴보았다.
다시 보니 .. 왔다갔다 실행해서 그런지 몰라도 table 내용이 업데이트 되지 않는 바람에
내용이 추가되어 있는지 모르고 그냥 실행했더니 발생한 오류였다 .. 정말 황당하다.
테이블을 다시 비우고 실행해봤더니
기분좋은 초록색을 확인할 수 있었고, console 창의 내용과 테이블 모두 잘 실행되었다 !!
데이터베이스를 사용하다가 연결이 끊긴 게 당황스러웠는데, 테이블을 drop하려고 하다가 데이터베이스 자체를 drop 해버린 것이 아닌가 생각이 들기도 했다.
만약에 잘 사용하던 데이터베이스를 선택하지 않았다고 한다면 다시 사용할 수 있도록 설정해주면 된다.
그리고, PK 값은 중복되면 안되니까 테이블에 중복된 데이터가 이미 들어가 있는지 잘 확인하고 테스트해야겠다!