Integer和int踩过的坑
2019-08-16 11:05:41来源:博客园 阅读 ()
Integer和int踩过的坑
在做SSM项目时发现一个有趣的bug,在这里记录一下。
数据库表如下:
实体类:grade字段初始设定为int类型
在用mybatis对第三条数据进行修改时,希望赋值的更改,未赋值的不更改,测试运行
修改后发现数据库中的grade字段变成了0,这不是我想要的,(按照正常需求应该是原来的数字5)
查看了一下日志,发现了猫腻:
int 类型,在默认情况下不赋值为0,执行到mybatis的更新语句时,被当做数字0,而非null,
仔细想想Integer和int 的区别,integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,
我又把之前实体类中的grade 类型改为了Integer成功实现了自己想要的。
总结:在实体类中尽量使用Integer修饰,Integer可以区分出未赋值和值为0的区别,我们大部分做判断都是以“”null“”去判断的,特在此做个笔记。
原文链接:https://www.cnblogs.com/ly-520/p/11241080.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- System.out.println()和System.out.print()区别 2020-06-10
- 当IntelliJ IDEA2020.1遇上JDK14:所有美好环环相扣 2020-06-01
- 笑看女程序员征婚SQL,半夜巡逻民警突然对我大喊int类型占几 2020-05-31
- 第六章第三十七题(格式化整数)(Format an integer) - 编程 2020-05-26
- ahjesus-2020 Intellij idea 最新注册码 已稳定数月 亲测有 2020-05-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash