背景
使用mybatis查詢(mysql)時,會使用多個double字段做相加,但是呢,其中幾個字段有可能是null,會拋空指針。
解決方法
自動生成的mybatis mapper文件長這樣
1
2
3
|
<sql id= "Base_Column_List" > ID, PREPAYMENT_FEE </sql> |
修改它
1
2
3
|
<sql id= "Base_Column_List" > ID, ifnull(PREPAYMENT_FEE,0) as PREPAYMENT_FEE </sql> |
補充:mybatis中0和null關(guān)系處理
最近在項目開發(fā)中,mybatis遇到一個很奇怪的問題,因為想在后臺傳一個int型0插入到數(shù)據(jù),卻被識別成了null。
后面,排除問題時,查到mybatis源碼對其進行了強制定義。
所以解決問題可以改造mybatis源碼,或者簡單的做以下處理:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
< 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
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。
原文鏈接:https://amoschen.blog.csdn.net/article/details/80846017