主键值回填
在数据库中插入数据时,有时我们是需要获取新数据的主键值。在 Mybatis 中支持主键 值回填,可以让我们更够更方便的获取新添加数据的主键值
Mybatis 中支持两种方法获取主键:
- 获取自增主键的值。如:MySQL、SqlServer
- 获取非自增主键的值。如 Oracle
获取自增主键值
- 接口
void insertUsersGetKey(Users users);
局部配置
- mapper
<!--添加用户获取主键值[自增]-->
<insert id="insertUsersGetKey" useGeneratedKeys="true" keyProperty="userid">
insert into users values(default ,#{username},#{usersex})
</insert>
全局配置
- 全局配置文件
<settings>
<setting name="useGeneratedKeys" value="true"/>
</settings>
- mapper
<!--添加用户获取主键值[自增]-->
<insert id="insertUsersGetKey" keyProperty="userid">
insert into users values(default ,#{username},#{usersex})
</insert>
获取非自增主键值
<!--添加用户获取主键值[非自增] oracle[order:Before] mysql[order:after]-->
<insert id="insertUsersGetKey">
<selectKey order="AFTER" keyProperty="userid" resultType="int">
<!--在 MySQL 数据库中获取插入数据的主键的值: SELECT LAST_INSERT_ID(),SELECT @@Identity 是 SELECT LAST_INSERT_ID()的同义 词。作用是相同的。 -->
SELECT LAST_INSERT_ID()
</selectKey> insert into users values(default ,#{username},#{usersex}) </insert>