아래와같이 값을 넣었을때 테이블에서는 NULL이 허용이 되도 NULL값 에러가 나타나는 경우가 있습니다.
<!-- mybatis 방식 -->
<insert id="insertQuery">
INSERT INTO table (id , name, title) VALUES (#{id}, #{name}, #{title})
</insert>
Caused by: org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter.
Most JDBC drivers require that the JdbcType must be specified for all nullable parameters.
Cause: java.sql.SQLException : 부적합한 열 유형: 1111
이럴 경우 항상 null을 체크하고 insert의 분기를 나누거나 "" 값을 넣어준다던가 하는것은 많은 리소스 낭비입니다. 다음과 같이 jdbcType을 지정해준다면 쿼리는 자연스럽게 null로 변경되어 INSERT 쿼리가 실행됩니다.
<!-- mybatis 방식 -->
<insert id="insertQuery">
INSERT INTO table (id , name, title) VALUES (#{id, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR}, #{title, jdbcType=VARCHAR})
</insert>
쿼리마다 적당히 jdbcType을 지정해서 사용해봅시다.
'Spring Framework' 카테고리의 다른 글
[Spring Framework] Dispatcher-Servlet 이란? (0) | 2020.01.05 |
---|---|
[Spring Framework] mybatis-config.xml 설정 파일 (0) | 2019.12.04 |
[Spring Framework] CKEDITOR 연동 (0) | 2019.12.01 |
[Spring Framework] logback 설정 (0) | 2019.12.01 |
[Spring Framework] @JsonFormat을 이용한 날짜 형식 지정 (0) | 2019.11.28 |