站长简介:站长其人,计算机爱好者,所写内容甚是简单,且毛刺众多,被好事者称为装逼站长。业内正统多老实,竖子闲心取诨名!只因从业久矣,日渐懒怠,现以玩乐为主,偶有撩猫逗狗,以致鸡犬不宁,时而内心惶惶。昨夜挑灯读码,今朝群里对骂,虽口舌爽快一时,然终归不过是青蛙斗蝌蚪,亦是无趣。技术难题犹如小学奥数,人所不会是因为学了但不会,站长不会是因为不想学而不懂。纵横IT十多年,技术使我生白发,我把技术来忽悠,故此以来,站长文风简单,多以点到为至,权当茶余饭后消遣而已。
插入属于数据库的基本操作,但是很多人对下面两个问题有点疑惑:
(1)如何判断是否插入成功呢?是根据返回值吗?
(2)insert什么时候返回0?
其实,上面这两个问题的本质就是对“insert插入的返回值”不清楚。话说,我也没有搞清楚,也许之前搞明白了,后来忘记了,最近通过走读MyBatis的源码又加深了印象,特总结了下来。
(1)insert插入的返回值是新增数据的ID。当然,前提是数据库支持自增的ID主键。
(2)如果没有定义自增主键,那么将返回一个特殊的数,至于这个数是什么,在MyBatis里面是这样定义的:Integer.MIN_VALUE + 1001
至此,上面的两个问题可以得到合理的解决:
(1)可以根据返回值来判断是否插入成功,返回结果不为 Integer.MIN_VALUE + 1001的,都属于新增数据的ID,自然可以判断依据插入成功。
(2)此问题本身就是问题,不应该这么发问。insert返回值是新增数据的ID,通常来说,MySQL AUTO_INCREMENT会从1开始编号,也就意味着什么时候也不会返回0。
长按下图,纵览过往发文记录