반응형
스프링에서 마이바티스를 이용할 때 파라미터 값이 null인 경우 insert, update 할 때 에러가 발생한다.
이런 경우 null값으로 처리해줄 수 있는 방법이 있다.
insert, update 구문에 jdbcType 설정하기
예를 들어 EMP라는 테이블에 EMPNO, ENAME, JOB, SAL이라는 칼럼이 있다고 가정한다.
아래의 값을 EMP에 insert 하는 경우 sal의 값은 null이다.
int empno = 1; String ename = "WENDY"; Stirng job = "DBA" String sal;
Mapper XML 파일에서 위의 값을 insert하는 쿼리를 작성할 때 아래와 값이 null값이 들어오게 되는 파라미터 값에 데이터 타입을 명시하면 에러없이 실행된다.
<insert id="insertNull" parameterType="java.util.Map"> INSERT INTO EMP (empno, ename, job, sal) VALUES ( #{empno}, #{ename}, #{job}, #{sal, jdbcType = VARCHAR}) </insert>
Configuration XML에서 전체 설정하기
Configuration XML 파일에서 properties 설정보다 아래, typeAliases 설정보다 위에 아래와 같은 세팅값을 추가해준다.
<!-- 마이바티스 null값 insert 설정 --> <settings> <setting name="jdbcTypeForNull" value="VARCHAR"/> </settings>
개인적으로는 매번 jdbcType을 작성하는 게 번거로워서 두 번째 방법을 사용하고 있다.
반응형
'개발 > JAVA' 카테고리의 다른 글
[JAVA] 자바에서 OPEN API 연결하기 (0) | 2021.12.21 |
---|---|
JDOM(Java Document Object Model) 관련 (0) | 2021.11.18 |
[JAVA] indexOf() / lastIndexOf() (0) | 2021.11.16 |
[SPRING] Mybatis에서 다중 insert하기 (3) | 2021.11.07 |
[SPRING] 파라미터 속 json 배열 꺼내쓰기 (0) | 2021.10.08 |