MyBatis框架insert插入操作返回值解读
插入属于数据库的基本操作,但是很多人对下面两个问题有点疑惑:
(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。