操作MyBatis引發Error setting null for parameter #X 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或其它類型值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM