这种方式是在执行插入操作时,先生成一个主键值,然后再将主键值和其他字段一起插入到数据库中。具体步骤如下:
<insert id="insertUser" parameterType="com.example.User">
<!-- 使用 selectKey 元素来生成主键 -->
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
-
在
selectKey
元素中,设置keyProperty
属性来指定主键属性名称,设置resultType
属性来指定主键类型,设置order
属性来指定selectKey
执行的顺序(有 BEFORE 和 AFTER 两种选项)。在这个例子中,我们使用LAST_INSERT_ID()
函数来获取最后插入的自增主键值。 -
在 Java 代码中调用
insert
方法,并传入要插入的对象。例如:User user = new User(); user.setName("John"); user.setAge(30); userMapper.insertUser(user); System.out.println(user.getId()); // 输出插入数据的自增主键值
在执行完
insert
操作后,自增主键值就会被赋值给user
对象的id
属性。