인프런 커뮤니티 질문&답변

tldn0101님의 프로필 이미지
tldn0101

작성한 질문수

[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]

54_게시판 웹 계층 구현하기(등록 및 조회 구현)

SQL오류...

작성

·

400

0

안녕하세요? 박메일 선생님!

또 질문을 남기게 됩니다..

현재 강의를 잘듣 고있는데 게시물 등록할때 

강의 06:14까지 들었을때

영어로 게시물 등록하면 잘되는데

한글로 등록하면 

java.sql.SQLException: Incorrect string value: '\xED\x95\x9C\xEA\xB8\x80...' for column 'title' at row 1

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)

at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1302)

at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)

at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)

at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)

at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)

at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)

at com.sun.proxy.$Proxy15.insert(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:279)

at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:57)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)

at com.sun.proxy.$Proxy17.insert(Unknown Source)

at kr.inflearn.service.BoardServiceImpl.register(BoardServiceImpl.java:24)

at kr.inflearn.web.BoardController.registerPost(BoardController.java:41)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

이러한 오류가 뜹니다 ㅜㅜ

web.xml에는 필터 잘 설정해 두었습니다.

혹시 이런경우 톰캣에서 한글설정을 하면 되는지 궁금합니다!

답변 3

1

박매일님의 프로필 이미지
박매일
지식공유자

혹시 title의 한글 글자 수가 너무 길어서 오류가 날수도있으니 줄여서 한번넣어 보시구요.

form에서 method="post" 로 되어있는지도 확인해보시기 바랍니다.  한글 인코딩은 필터만 설정해주면 됩니다. 다시해보시고 올려주세요~~

0

tldn0101님의 프로필 이미지
tldn0101
질문자

디비버에서 직접 넣어도 위에 한글 기입한 부분만 저런식으로 빨간줄이 납니다 ㅜㅜ os의 차이일까요? 저는 현재 맥북을 쓰고있습니다.

박매일님의 프로필 이미지
박매일
지식공유자

그래도 않되시면 아래처럼 해보시구요

Incorrect string value: '\xEC\xA7\x84\xEC\x8B\x9C...' 이런 에러가 난 경우 디버버에서

ALTER TABLE board convert to charset UTF8; 

테이블 속성을 변경해보시기 바랍니다.

tldn0101님의 프로필 이미지
tldn0101
질문자

박매일 선생님 정말 감사합니다.

문제가 한번에 해결되었습니다.

바쁘실텐데 언제나 빠른답변으로 문제 해결해 주어서 너무 감사합니다.

새로나온 스프링도 결제하였습니다!

회사 업무하는데 항상 너무 많은 도움이 됩니다!

0

tldn0101님의 프로필 이미지
tldn0101
질문자

박매일 선생님 언제나 빠른 답장 감사합니다!

선생님이 지도해주신 체크해봤으나 현재 다른점이 없습니다!

title 또는 content에 영어로 기입하고 writer에만 한글 한글자만 기입하면 이번엔 writer에서 에러가 납니다!

tomcat에 server.xml에 

URIEncoding="UTF-8"를 추가하여도 같은 에러가 발생합니다.
해결법을 찾고 해결된다면 답글로 의견 남기겠습니다. 감사합니다!

박매일님의 프로필 이미지
박매일
지식공유자

MYSQL설정부분에 아래처럼 뒤에 추가로 입력한번 해보시고 다시입력해보시기 바랍니다.

맥북이라 그럴수도 있어서요?

jdbc:mysql://localhost:3306/testdb?useSSL=false&useUnicode=true&characterEncoding=utf8
tldn0101님의 프로필 이미지
tldn0101

작성한 질문수

질문하기