상품 등록 분명 됐는데... 분명 잘 됐는데... 이제 안돼...
스프링,,, 우리 이러지 않기로 했잖아...
insert 할 때 여덟 번째 줄에서 오류가 났다는데 궁금한 게 이 여덟 번째는 처음부터 여덟 번째야? 아니면 괄호 안에서부터 여덟 번째야?
오류난 구문은 여기인데 만약에 처음부터 여덟 번째면 출판사가 잘못된 거고, 괄호 안에서 여덟 번째면 날짜가 잘못된 거!
그래서 출판사 먼저 확인해봤는데 변수명 그대로 잘 적었고, 콘솔창에 출력되는 sql 구문에서도 내가 입력한 대로 들어간 거 보니까 날짜가 잘못된 것 같았다.
근데 콘솔창에서는 문법 틀렸다고 알려주는 게 다라서 MySQL 워크벤치에서 다시 구문을 실행해봤음
워크벤치에서 실행하니까 경고가 뜨긴 하는데 실행은 됐다!
그리고 date에서 문제 있는 거 맞았음
show warnings
로 경고 내용을 보면(사실 위에 사진에도 경고 문구 나와있지만,,,ㅎ)
찾아보니까 DB에 저장된 데이터타입은 Date인데 insert 구문에 들어가는 날짜는 다른 타입이라서 이런 오류가 난 것 같다
콘솔창에 뜨는 날짜를 보면 이렇게 뜨는데 뭐지...?
며칠 전만 해도 date 타입으로 잘 저장됐는데 갑자기 저런 식으로 날짜가 바뀌었다,,,
월/일/년도 시간으로 뒤죽박죽 엉망임
넘어올 때 잘못 넘어온 건지 확인을 해보려고 확인을 해보기 위해서 컨트롤러에서 출력을 해봤는데
음... 넘어올 때는 또 date 타입으로 잘 넘어왔다
그럴 일은 없지만 service에서 바뀐 건가 했는데 서비스에서 출력해봐도 date 타입으로 잘 넘어오는데 mybatis에서만 저렇게 들어가는 이유가 대체 뭔지...
시킨 적이 없는데 mybatis 자체에서 알아서 형변환을 하는 경우도 있나...?
date 타입에서 timestamp타입으로 바뀐 이유를 찾을 수는 없었고 $
를 사용하면 들어가있던 그대로 입력되는 게 생각나서
위에 사진처럼 바꿔줬는데 이렇게 하니까
date 타입으로는 잘 나오는데 그래도! mybatis에서 구문 실행이 안된다,,,
뭐가 문제인지 보려고 워크벤치에 갔는데 워크벤치에서는 잘 되더라,,,
오류는 무슨 초록색 체크 원이 나왔다,,,
mybatis 너 대체 나에게 무슨 억하심정이 있는 거야,,,😭😭😭😭😭
저렇게까지 했는데 안된다면,,,
혹시나 혹시나했는데 진짜 설정 문제가 맞았다...!
내 경우에는 root-context
파일에
allowMultiQueries=true
이게 빠져있어서 그랬음,,,
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl" value="jdbc:log4jdbc:mysql://itwill-team1-220823.cdzxfbml4ntl.ap-northeast-2.rds.amazonaws.com:3306/team1_semi?allowMultiQueries=true"></property>
<property name="username" value="team1"></property>
<property name="password" value="220823team1"></property>
<property name="connectionTimeout" value="60000"></property>
<property name="maxLifetime" value="180000"></property>
</bean>
두 번째 <property>
마지막에 allowMultiQueries=true
이것만 추가해주면 정상 작동 된다!
allowMultiQueries=true
이게 mybatis에서 다중 쿼리를 사용 가능하게 해주는 설정인데 내가 쓴 sql 구문도 다중 쿼리였기 때문에 안 돌아갔던 거였음,,,
그러니까,,, 날짜로 고생한 건 헛수고였다는 것,,,ㅋㅋㅋㅋㅋㅠㅠ
어쩐지 분명 됐는데 안되더라구,,,
그래도 해결했으니까 너무 기쁘다!
속이 뻥 뚫렸음ㅎㅎ