본문 바로가기
Language/SPRING

org.mybatis.spring.MyBatisSystemException 에러

by 박살낼겨 2021. 6. 23.

콘솔창에 아래와 같은 문구와 더불어

Could not set parameters for mapping:ParameterMapping

 

jdbcType=null 

이런 문구가 보이면 '부적합한 열유형'에 대한 에러임에 분명하다.

 

**해결방법을 봐보자**

두가지의 방법으로 해결해보겠다.

1) 첫 번째

SQL.xml(예를 든 파일명이지만 )

<update id="updateUser" parameterType="hashMap">
<![CDATA[
	UPDATE CUSTOMER
    SET		PASSWORD = #{password},
    		CUSTOMER_NAME = #{customerName},
            TEL_NO = #{telNo},
            EMAIL = #{email},
            ZIP_NO = #{zipNo},
            ADD1 = #{add1},
            ADD2 = #{add2, jdbcType=VARCHAR},
            REGIST_DE = SYSDATE,
            REGIST_ID= #{id},
            UPDATE_DE = SYSDATE,
            UPDATE_ID= #{id}
     WHERE  ID = #{id}	  
]]>  
	</update>

위에서 에러가 난 부분이고                                   고친 부분

ADD2 = #{add2}                ============>       ADD2 = #{add2, jdbcType=VARCHAR}

 

2) 두번째

sql-mapper-config.xml 라고 되어있는 파일을 수정하는데 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>   
        
        <!-- 이 부분을 추가하면 NULL이 들어가도 에러 안 뜬다 -->
    	<setting name="jdbcTypeForNull" value="NULL" />
        
	</settings>
	<typeAliases>
		<typeAlias alias="bhfInfoVO" type="kr.or.ddit.service.fm.BhfInfoVO"/>
		<typeAlias alias="bhfImgVO" type="kr.or.ddit.service.fm.BhfImgVO"/>
		<typeAlias alias="pagingVO" type="kr.or.ddit.service.fm.command.PagingVO"/>
		<typeAlias alias="userVO" type="kr.or.ddit.service.customer.UserVO" />
    </typeAliases>
</configuration>

위와 같이 

<setting name="jdbcTypeForNull" value="NULL" /> 이 부분을 추가해주면 Null을 처리해준다.

 

* 티스토리가 줄 맞춤이 안되네....