今天犯了个错
建实体的时候用的是基本类型int、double、long…而不是包装类Integer、Double、Long…
导致更新后实体model中使用基本类型的数据在数据库被清零

public class test {public Long testa ;public long ad;public Long getTesta() {return testa;}public void setTesta(Long testa) {this.testa= testa;}public Long getAd() {return ad;}public void setAd(Long ad) {this.ad = ad;}
}

数据库mybatis自动生成的updateByPrimaryKeySelective方法如下:

<update id="updateByPrimaryKeySelective"  parameterType="model.test">update test<set>.....<if test="testa!= null">testa= #{testa,jdbcType=BIGINT},</if><if test="ad != null">ad = #{ad,jdbcType=BIGINT},</if></set>
</update>

更新的时候

Test test = new Test()
test.setId(id);
test.setTesta(232);
updateByPrimaryKeySelective(test);

如代码只想更新testa,却意外的把ad也更新为0了。
所以在建实体model时要用包装类才能使用如mybatis操作数据块的代码一样去更新数据。否则基本类型的数据会被清零。因为在new关键字构建方法构建对象后,该对象基本类型的数据默认值是0,而不是null;而包装类默认值是null。

int,long,double数值类的基本类型导致更新数据被清零相关推荐

  1. java char和int的区别_int类型和char类型的区别

    下面三个定义式的区别: int i = 1;char i = 1;char i = '1'; int用来定义整型变量,char用来定义字符型变量,要清楚的知道三个定义式的区别,可以比较它们在内存中的存 ...

  2. int、double型数最大正数值和最小正数值分别是多少

    int型数最大正数值和最小正数值分别是多少 #include <stdio.h> #include <stdlib.h> #include <math.h> int ...

  3. C# int uint long ulong byte sbyte float double decimal 范围,及类型!

    C# int uint long ulong byte sbyte float double decimal 范围,及类型! static void Main(string[] args){Conso ...

  4. 利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu

    利用二维数组(double[])实现一个矩阵类:Matrix.要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu ...

  5. 数据库查询字段类型为double类型和float类型时遇到的坑

    对于小数型的字段,我们常用double类型和float类型,但是这两种类型使用的时候有很大差别,下面我们来看一下 在设计数据表时,突然发现原来FLOAT原来是很不靠谱的,所以在这里建议大家换成DOUB ...

  6. java中int转换double类型_Java 程序将int类型变量转换为double

    Java 程序将int类型变量转换为double 在此程序中,我们将学习如何在Java中将整数(int)变量转换为double值. 要理解此示例,您应该了解以下Java编程主题: 示例1:使用类型转换 ...

  7. oracle的int范围,oracle中int类型和number类型区别

    oracle中int类型和number类型区别 INT类型是NUMBER类型的子类型. 下面简要说明: (1)NUMBER(P,S) 该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节 ...

  8. int类型和byte类型的强制类型转换

    今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到In ...

  9. C++ int float double类型的数据大小端转化

    以下代码抄自<网络多人游戏架构与编程>,可以支持float.int.double等数据类型数据的大小端转换,测试代码为: void TestByteSwap() {int32_t test ...

  10. 【网上的都不靠谱?还是得改源码】用Javasisst的字节码插桩技术,彻底解决Gson转Map时,Int变成double问题...

    一.探究原由 首先申明一下,我们要解决的问题有两个: Json串转Map时,int变double问题 Json串转对象时,对象属性中的Map,int变double问题 然后,我们来了解一下,Gson实 ...

最新文章

  1. window下删除无效的区域通知图标
  2. 领域驱动设计(DDD:Domain-Driven Design)
  3. linux如何登陆oracle?如何停止、启动oracle和其监听?
  4. MongoDB学习笔记(二)使用Java操作MongoDB
  5. php 递归合并类 call,PHP多个数组合并(递归的进行)
  6. 零基础学习次世代,3D游戏建模要美术基础吗?
  7. iframe并没有错
  8. python 可视化界面 打开excel_python如何将excel数据处理可视化
  9. PHP URL参数获取方式的四种例子
  10. 提示文件损坏无法删除时如何删除文件
  11. VC++获取系统信息/获取OS/获取MAC/获取本地IP/判断是否为网吧
  12. java linux路径带括号,java执行linux命令 括号
  13. 直角三角形(rigtri)
  14. 打印机服务器ip修改,怎样改打印机服务器的ip地址
  15. 石墨计算机,电脑CPU可不可以用石墨做?
  16. java word 题目导入_java使用poi导入word题库
  17. Aspose.Words在word文档合并时如何控制列表编号
  18. 学习JAVA.day05
  19. 打车日记 - 光头师傅
  20. 鲍尔默离开后,微软还能东山再起吗?

热门文章

  1. 小名的开源项目【EamonVenti】0.0篇 —— 学习如何搭建一个简单的SpringCloud架构,体验微服务的强大!
  2. W ndows xp 开机音乐,当年番茄花园Ghost XP的开关机音乐还记得吗?流传度媲美原版...
  3. 用python监控互联网网速
  4. 网站设计之常见简单实用的JavaScript特效总结(上篇)
  5. 教师资格证面试试讲需要注意什么?
  6. C++ Primer Plus 学习笔记(十一)
  7. 5G时代的到来会对UI交互设计产生什么影响?
  8. 基于深度学习的单目视觉深度估计研究综述
  9. 电脑重装系统后,重启时遇到错误,报错需要重新启动,并重新安装系统
  10. Selenium WebDriver使用IE浏览器