操作MyBatis引發Error setting null for parameter #with jdbcType other.無效的列類型

在用mybatis操作oracle的時候,傳入null值而引發的錯誤,異常信息:

org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER .
 Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: 
 java.sql.SQLException: 無效的列類型 ; 
 uncategorized SQLException for SQL []; SQL state [null]; error code [17004];
 無效的列類型; nested exception is java.sql.SQLException: 無效的列類型

當我們用MyBatis操作數據庫的時候傳入null值,而且沒有加入jdbcType類型的時候就會引發上述這種錯誤類型,因爲MyBatis不知道這個地方要傳入什麼參數。

解決方案:

1.單個配置

直接在後面加上 jdbcType=類型
#{id,jdbcType=VARCHAR}

2.全局配置

在MyBaits的核心配置文件裏面進行配置
<configuration>
    <settings>
        <setting name="jdbcTypeForNull" value="NULL"/>
    </settings>
</configuration>

第二種配置方式官方是這樣解釋的:

Specifies the JDBC type for null values when no specific JDBC type was provided for the parameter. Some drivers require specifying the column JDBC type but others work with generic values like NULL, VARCHAR or OTHER. 


當沒有爲參數提供特定的JDBC類型時,指定的jdbc類型爲空。一些驅動程序需要指定列JDBC類型,但其他驅動程序使用NULL、VARCHAR或其它類型值。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章