MyBatis返回插入记录的主键

如果想插入一条记录之后,立刻对其进行其他操作,这时候就需要获取记录的主键(通常是ID),MyBatis有以下方式处理。

Dao层的接口定义如下:

void importUser(@Param( "user" ) User user);

注意:这里不能因为要返回主键而定义接口的返回值类型为String或者int,会报错。

xml配置文件:

<insert id= "importUser" useGeneratedKeys = "true" keyProperty= "user.id" parameterType ="com.ywlaker.model.User" >
     INSERT INTO user (user_name)
     VALUES(#{user.userName,jdbcType=VARCHAR})
</insert >

useGeneratedKeys = "true" 表示返回主键

keyProperty= "user.id" 表示用参数user对象的id属性接收主键

这个方法执行完新纪录的主键就会插入user对象,想返回主键可以在上一层定义

@Override
public String importUser(User user) throws ServiceException {
  try {
    this. UserMapper.importUser(user);
    return user.getId();
  } catch (Exception e) {
    throw new ServiceException( "数据库错误!" );
  }
}

当然,直接返回user对象也可以。

时间: 2024-12-16 05:45:28

MyBatis返回插入记录的主键的相关文章

MyBatis+MySQL 返回插入记录的主键ID

今天用到了多个表之间的关系,另一个表中的一个字段要以第一个表的主键作为外键. 下面说两种方法,MyBatis+MySQL 返回插入记录的主键ID: 第一种: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us

MyBatis 插入时返回刚插入记录的主键值

MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java 1 package cn.com.zfc.model; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private String password; 8 9 public Integer getId() { 10 retur

IBatisNet:让insert操作返回新增记录的主键值

项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目目录结构: 项目中使用ibatis做数据访问层已经有好长时间了.开发小组成员反映ibatis的insert操作返回的结果是null,这一点很是不爽. 其实,大家都是希望能够把新增记录的主键值返回出来. 上上周,大家有反编译ibatis的包,查看其实现原理,后来,又尝试其他方法,都没能给实现这个功能.

JDBC:元数据 &amp;&amp; 获取插入记录的主键值 &amp;&amp; _JDBC_处理 Blob

一.元数据 DatabaseMetaData类 DatabaseMetaData 类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以非常详细的了解数据库的信息: getURL():返回一个String类对象,代表数据库的URL. getUserName():返回连接当前数据库管理系统的用户名. isReadOnly():返回一个boolean值,指示数据库是否只允许读操作. getDatabaseProductName():返回数据库的产品名称. getDatabaseProductV

2017.9.15 mybatis批量插入后实现主键回填

参考来自:mybatis mysql 批量insert 返回主键 注意:必须要在mybatis3.3.1及其以上才能实现. 1.service 1 List branchEntryList = (ArrayList<Entry>)entryMap.get("branchEntryList"); 2 branchDao.insertBatch(branchEntryList); 2.dao 3.xml 注意这里是list,不管参数名叫什么,这里都是list. 4.效果 执行前

初学JDBC,获取插入记录的主键、执行批量操作

一.获取插入记录主键值 在创建语句的地方使用Statement.RETURN_GENERATED_KEYS标识一下,然后通过getGeneratedKeys方法获得 preparedStatement=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); preparedStatement.excuteUpdate(); resultSet=preparedStatement.getGeneratedKeys();//主键有可能有

Mybatis获取插入自增主键

只需在插入语句上配置: useGeneratedKeys="true" keyProperty ="id" <insert id="insertSelectiveMemberAcc" useGeneratedKeys="true" keyProperty="id" parameterType="com.member.domain.MemberAccInfo">     ins

mybatis获取插入的语句主键(自增主键)

<insert id="insertUser" parameterType="User"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> insert into users(name, age, g

MyBatis获取插入记录的自增长字段值

第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_na