您的位置:首页 > 数据库 > MySQL

MyBatis创建实体对象时获取自动生成的主键值

2013-07-03 13:17 465 查看
例如表结构:

CREATE TABLE person (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30)
);


实体类:

public class Person {
private long id;
private String name;
...
}

Mapper接口:

public interface PersonMapper {
void createPerson(Person newPerson);
}

则通过如下的mapper配置,可以实现当调用PersonMapper.createPerson(Person)时,Person的id将会被自动设置。(使用MySQL数据库)

<mapper namespace="...">
<insert id="createPerson" statementType="PREPARED" useGeneratedKeys="true" keyProperty="id">
<![CDATA[
INSERT INTO person (name) VALUES (#{name});
]]>
<selectKey keyProperty="id" resultType="_long" order="AFTER">
<![CDATA[
SELECT LAST_INSERT_ID() AS id
]]>
</selectKey>
</insert>
</mapper>


如果使用的是其他数据库产品的话,可以通过修改selectKey下所对应的当前主键的获取语句来得到相同的效果。

个人博客:http://www.predatorray.me/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MyBatis MySQL