mybatis 获取自动生成的键值
所属分类 mybatis
浏览量 83
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 事务