Study/Java

[MyBatis] Oracle 부적합한 열유형 null 처리방법

momong'-' 2020. 12. 31. 18:57

mybatis-config.xml 또는 context-sqlMap.xml

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configLocation"  value="classpath:sqlMap/sql-mapper-config.xml" />
</bean>

프로퍼티 네임이 configLocation인 value값에 보면 configLocation경로가 있음

저 경로 xml에 들어가 configuration 태그 아래 settings 이라는 태그가 있는지 확인하고

없을 경우 settings를 추가하여 아래처럼 설정하고 있을 경우는 setting을 추가해주면 된다.

매 가이드

// 없는 경우
<configuration>
  <settings>
      <setting name="jdbcTypeForNull" value="NULL" /> 
  </settings>
</configuration>

// 있는 경우
<settings>
	<setting name="jdbcTypeForNull" value="NULL" /> 
</settings>

jdbcType=VARCHAR 사용

<insert id="insertQuery">
    INSERT INTO [table_name]
    	(
          id
          , name
          , phone
        ) 
        VALUES (
          #{id}
          , #{name}
          , #{phone, jdbcType=VARCHAR}
        )
</insert>

값이 null일 경우 null처리가 된다.

 


조건절 if문 사용

<insert id="insertQuery">
    INSERT INTO [table_name]
    	(
          id
          , name
          <if test="phone != null and phone != ''">
          , phone
          </if>
        ) 
        VALUES (
          #{id}
          , #{name}
          <if test="phone != null and phone != ''">
          , #{phone}
          </if>
        )
</insert>

 

 

도움이 되셨다면 아래 ♡ 눌러주세요 (로그인 필요 없습니당)