개발자/오류관리

스프링 부트 다양한 오류 해결_DB한글 깨짐_Transactional_localhos:8080접속오류_컨트롤러 오류_log4jdbc 추가_언더바인식오류_dbeaver utf-8오류_스프링부트 실행 오류

푸루닉 2023. 4. 16. 23:34
1. 오류해결_한글입력이 안될때 => DBeaver에서 한글이 깨지기에 발생 => 
### cause: java.sql.sqlsyntaxerrorexception: (conn=153) incorrect string value: '\xeb\xb2\x88 \xea\xb2...' for column `board`.`tb_post`.`title` at row 1 ; bad sql grammar []

해결방법 : DBeaver에서 아래 구문 입력

	[ALTER TABLE tb_post convert to charset utf8;]

2. @Transactional

스프링에서 제공해 주는 트랜잭션(Transaction) 처리 방법 중 하나로, 선언적 트랜잭션으로 불리는 기능입니다. 
호출된 메서드에 해당 어노테이션이 선언되어 있으면 메서드의 실행과 동시에 트랜잭션이 시작되고, 
메서드의 정상 종료 여부에 따라 Commit 또는 Rollback 됩니다.

3. localhost:8080 접속이 안될때
https://devmango.tistory.com/97

4. 컨트롤러와 뷰가 완벽히 작성이 되어 있으나 접근이 불가능할때(500)
(이름)application에 접근하여 main을 한번 실행시켜줘야 한다.

5. log4jdbc 추가하는법
https://congsong.tistory.com/23

6. _인식오류
언더바를 인식못하는 오류가 있기에 매핑방식을 바꿔줘야 한다. 아래는 자세한 설명
해당 에러를 해결하려면 MyBatis의 @Result 어노테이션을 이용하여 CD_GRP 컬럼과 cdGrp 프로퍼티를 매핑해주어야 합니다.

7. utf-8을 꼭 설정해주자(dbeaver에서)
ALTER TABLE tb_post convert to charset utf8;

8. 만약 sequence(자동증가)를 사용할 경우
useGeneratedKeys="true" keyProperty="id">를 insert구문에 붙여줘야 자동증가된 인덱스가 정상적으로 매핑된다.

9. 스프링부트는 두개를 실행 할 수 없다. 항상 메인으로 동작하고 있는 것이 무엇인지 확인하자. => 오른쪽상단의 전원모양에 불이 들어와있는지 확인하면된다.

10. 스프링부트의 경우 간혹 실행이 되지 않는 오류가 있다.
이 경우 이미 8080포트를 사용하고 있기에 발생하는 사항이므로, 혹시 두개의 프로젝트를 실행시키려고 하는지 먼저 확인해본 후
전원모양의 파란불이 모두 들어와있지 않다면 cmd에서 해결해야한다.
cmd => netstat -ano |findstr 8080 (8080에서 사용중인 프로세스 번호를 확인한다.)
=> taskkill /f /pid 3396 (taskkill을 이용하여 프로세스를 중단한다.)
=> 중단 후 다시 실행버튼을 누르면 구동이 될 수 있을 것이다.