카테고리 없음

mybatis SQL null 처리

ejyoovV 2021. 7. 21. 16:17

mybatis에서 SQL 작성 시 null을 처리하지 않는 경우 에러를 발생시킨다.

따라서 쿼리에 null 처리를 해야한다.

insert문 일부

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>