背景
使用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关系处理
最近在项目开发中,mybatis遇到一个很奇怪的问题,因为想在后台传一个int型0插入到数据,却被识别成了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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://amoschen.blog.csdn.net/article/details/80846017