mybatis查詢字段為null設置為0的操作

背景

使用mybatis查詢(mysql)時,會使用多個double字段做相加,但是呢,其中幾個字段有可能是null,會拋空指針。

解決方法

自動生成的mybatis mapper文件長這樣

<sql id="Base_Column_List">
 ID, PREPAYMENT_FEE
 </sql>

修改它

<sql id="Base_Column_List">
 ID, ifnull(PREPAYMENT_FEE,0) as PREPAYMENT_FEE
 </sql>

補充:mybatis中0和null關系處理

最近在項目開發中,mybatis遇到一個很奇怪的問題,因為想在後臺傳一個int型0插入到數據,卻被識別成瞭null。

後面,排除問題時,查到mybatis源碼對其進行瞭強制定義。

所以解決問題可以改造mybatis源碼,或者簡單的做以下處理:

<insert id="insertDemo" parameterType="java.util.Map">
INSERT INTO
 TABLE
<trim prefix="(" suffix=")" suffixOverrides=",">
 <if test="importRow != null and importRow != '' or importRow ==0 ">
 IMPORT_ROW,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
 <if test="importRow != null and importRow != '' or importRow ==0 ">
  #{importRow},
 </if>
</trim>
</insert>

增強判斷添加 or importRow ==0

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。