服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - Java教程 - mybatis查询字段为null设置为0的操作

mybatis查询字段为null设置为0的操作

2021-08-10 12:03吃菜不吃饭 Java教程

这篇文章主要介绍了mybatis查询字段为null设置为0的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

背景

使用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

延伸 · 阅读

精彩推荐