Mybatis映射文件中#取值時指定參數相關規則
在#{}中,除了需要的數值外,還可以規定參數的一些其他規則。
例如:javaType,jdbcType,mode(存儲過程),numericScale,resultMap,typeHandler,jdbcTypeName,expression;
其中比較常用的爲jdbcType。
jdbcType
jdbcType通常在某種特定的條件下被設置:即在我們傳入數據爲null的時候,有些數據庫可能不能識別mybatis對null的默認處理。比如Oracle(報錯 :JdbcType OTHER:無效的類型;)。我們需要在傳值後面加上jdbcType = 類型,來確保數據庫的正確識別。
因爲mybatis對所有的null都映射的是原生Jdbc的OTHER類型,Oracle不能正確處理,mysql可以正常處理。即產生的主要原因是全局配置中,jdbcTypeForNull的默認值爲OTHER,oracle不予支持。
所以,除了在#{}裏面添加JdbcType的規則,還可以在mybatis全局配置裏面添加全局配置:
<setting name="jdbcTypeForNull" value="NULL|VARCHAR|OTHER">