mybatis插入值為空時需要制定類型


在執行SQL時MyBatis會自動通過對象中的屬性給SQL中參數賦值,它會自動將Java類型轉換成數據庫的類型。而一旦傳入的是null它就無法准確判斷這個類型應該是什么,就有可能將類型轉換錯誤,從而報錯。

要解決這個問題,需要針對這些可能為空的字段,手動指定其轉換時用到的類型。

一般情況下,我們沒有必要挨個字段去識別/判斷它是否可以為空,而是將所有的字段都當做可以為空,全部手動設置轉換類型

<insert id="save" parameterType="com.tarena.entity.Cost">  
    insert into cost values(  
        cost_seq.nextval,  
        #{name,jdbcType=VARCHAR},  
        #{base_duration,jdbcType=INTEGER},  
        #{base_cost,jdbcType=DOUBLE},  
        #{unit_cost,jdbcType=DOUBLE},  
        #{status,jdbcType=CHAR},  
        #{descr,jdbcType=VARCHAR},  
        #{creatime,jdbcType=TIMESTAMP},  
        #{startime,jdbcType=TIMESTAMP},  
        #{cost_type,jdbcType=CHAR}  
    )  
</insert> 

 


免責聲明!

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



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