这种方式是在执行插入操作时,先生成一个主键值,然后再将主键值和其他字段一起插入到数据库中。具体步骤如下:
- <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
属性。