카테고리 없음
mybatis SQL null 처리
ejyoovV
2021. 7. 21. 16:17
mybatis에서 SQL 작성 시 null을 처리하지 않는 경우 에러를 발생시킨다.
따라서 쿼리에 null 처리를 해야한다.
Insert 문을 작성할 때 발생하는 것 같음.
- 가능한 타입
BIT | FLOAT | CHAR | TIMESTAMP | OTHER | UNDEFINED |
TINYINT | REAL | VARCHAR | BINARY | BLOB | NVARCHAR |
SMALLINT | DOUBLE | LONGVARCHAR | VARBINARY | CLOB | NCHAR |
INTEGER | NUMERIC | DATE | LONGVARBINARY | BOOLEAN | NCLOB |
BIGINT | DECIMAL | TIME | NULL | CURSOR |
<insert id="exam">
insert into test values(
#{id, jdbcType=VARCHAR}
, #{password, jdbcType=VARCHAR}
, #{name, jdbcType=VARCHAR})
</insert>
- mybatis 설정 파일(xml)을 변경하면 한번에 해결할 수 있다.
- configuration 사이에 settings를 추가하면 된다.
<settings> <setting name="cacheEnabled" value="false" /> <setting name="jdbcTypeForNull" value="NULL" /> </settings> |
- settings는 가장 위에 추가 해야 오류가 안난다.
<configuration>
<settings>
<setting name="cacheEnabled" value="false" />
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
<typeAliases>
<typeAlias type="kr.test.exam" alias="exam"/>
</typeAliases>
<mappers>
<mapper resource="test.xml"/>
</mappers>
</configuration>