mybatis如何获取插入记录后的自增ID

场景: 很多时候, 我们设置数据库表字段为自增, 有些业务需要插入之后,获取到自增后的ID进行业务处理.

方法: 在配置文件中加入

useGeneratedKeys="true" keyProperty="id"

useGeneratedKeys 表示使用自增ID, keyProperty表示主键的属性名, 也就是java类中的实体名称

插入之后,通过实体getID() 方法获取到自增ID, 代码如下:

Admin admin = adminService.getById("1");

LoginLog log = new LoginLog();

log.setAdminAccount(admin.getAccount());

log.setAdminName(admin.getName());

log.setAdminId(admin.getId());

log.setCreateTime(new Date());

log.setType(1);

loginLogService.save(log);

System.out.println("============获取到ID================");

System.out.println(log.getId()); //特别注意,一定要是getXXX()获取

在mapper层,依然是返回影响的条数:

public void save(T t) throws Exception {

baseMapper.insert(t);//此方法会返回一个int类型结果, 表示影响的条数

}

时间: 2024-10-14 04:26:22

mybatis如何获取插入记录后的自增ID的相关文章

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN

MyBatis:获取插入记录的自增主键

我们知道MySql中主键可以设成auto_increment,也就是自增主键,每当新增一条记录,主键值自动加1. 在MyBatis中,执行insert,返回值为受影响的语句行数,此操作跟JDBC一致. 但是如果应用中需要将插入的值的主键返回时,这时有两种方式: 第一种方式:在mapper的insert节点中添加useGeneratedKey和keyProperty属性 第二种方式:在mapper的insert节点下添加selectKey子节点的方式 下面是具体的使用方式举例: 一.MySql中m

sql server获取插入记录后的ID

select @@IDENTITY --返回为当前会话的所有作用域中的任何表最后生成的标识值. select IDENT_CURRENT('table_name') --返回为任何会话和任何作用域中的特定表最后生成的标识值,它不受作用域和会话的限制,而受限于所指定的表 select SCOPE_IDENTITY() --返回为当前会话和当前作用域中的任何表最后生成的标识值.

python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())

#!/usr/bin/python # import MySQL module import MySQLdb # get user input name = raw_input("Please enter a name: ") # connect conn = MySQLdb.connect(host="localhost", user="nobody", passwd="nobody", conn="qestar&

mybatis在oracle插入对象后返回主键值

在mybatis中默认插入一条记录后,返回值为插入记录的条数. 现在想获取插入记录后,当前被插入的记录的主键值,需在insert方法中添加如下代码: <insert id="insert" parameterType="cn.com.pm.ppm.model.UserInfo" >   <selectKey resultType="java.math.BigDecimal" order="BEFORE" ke

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

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

Mybatis获取插入记录的自增长ID(转)

1.在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名,而不是表格的字段名. [html] view plain copy print? <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> i

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

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

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

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