mybatis mysql insert 添加操作返回主键

mapper接口代码:

 @param student 学生实例 * @return 成功操作的记录数目 *

 int add(User user);

至于mapper.xml则分为两种情况了,一种是数据库(如MySQL,SQLServer)支持auto-generated key field,另一种是数据库(如Oracle)不支持auto-generated key field的。

 1. 数据库(如MySQL,SQLServer)支持auto-generated key field的情况

    方法1(推荐):

insert into User(name, age) values(#{name}, #{age})

    方法2:

// 下面是SQLServer获取最近一次插入记录的主键值的方式

select @@IDENTITY as id

insert into TStudent(name, age) values(#{name}, #{age})

  由于方法2获取主键的方式依赖数据库本身,因此推荐使用方法1。

 2. 数据库(如Oracle)不支持auto-generated key field的情况

select CAST(RANDOM * 100000 as INTEGER) a FROM SYSTEM.SYSDUMMY1

insert into User(id, name, age) values(#{id}, #{name}, #{age})

 

  注意:mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到实体的id中了。

 

你可能感兴趣的:(mysql,mybatis)