首页  

mybatis 获取自动生成的键值     所属分类 mybatis 浏览量 50
MyBatis中获取自增长的键值,主要有两种方式:使用useGeneratedKeys属性和 selectKey 标签。
这两种方式的实现原理是一样的,都是通过JDBC的 getGeneratedKeys() 方法来获取数据库内部生成的主键值。

使用useGeneratedKeys属性:
在Mapper XML文件中的 insert 或 update 标签中设置useGeneratedKeys="true",并指定keyProperty属性为需要赋值的对象属性名。 
   < insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
       INSERT INTO users (name, email) VALUES (#{name}, #{email})
   < /insert>
keyProperty="id" 表示将生成的自增主键值赋给对象的id属性。


使用 selectKey 标签
在 insert 或 update 标签中嵌套 selectKey 标签,用于获取自增主键值。 
   < insert id="insertUser" useGeneratedKeys="true">
       INSERT INTO users (name, email) VALUES (#{name}, #{email})
       < selectKey keyProperty="id" resultType="int" order="AFTER">
           SELECT LAST_INSERT_ID()
       < /selectKey>
   < /insert>


这两种方式都可以避免多一次查询,直接在插入数据时获取自增主键值。
如果使用Oracle数据库,可能需要使用不同的方法,如使用Sequence或序列号变量。

上一篇     下一篇
java 各种日期时间转换

jdbc spi 实例

nodejs hello

DateTimeFormatter 使用

LocalDateTime常用API

MyBatis3 Transaction 事务