本文共 744 字,大约阅读时间需要 2 分钟。
向主键 自增 的数据库表中插入一条新记录,需要立即获取最新插入记录的id信息,用于后续处理
select max(id) from tablename
缺点: 需要考虑并发的情况 举例: a向数据库表C插入一条记录,b向数据库表C插入另一条记录,且b执行插入操作是在a获取最新插入记录的id操作之前。因此,a使用select max(id) from tablename
方法获取的id实际上是b插入的最新记录的idLAST_INSERT_ID
优点: 解决了并发问题,因为LAST_INSERT_ID
是线程安全的 举例:insert into tb_parameter_copy (name, identifier, data_type, remark, mock_data, must, packageName, source, defaultVal) values (#{name}, #{identifier}, #{dataType}, #{remark}, #{mockData}, #{must}, #{packageName}, #{source}, #{defaultVal}) select LAST_INSERT_ID()
其中:parameterType的参数类型可改成java.util.Map
int numberOfAffectedRows = parameterService.insertOfReturnId(parameter);
返回值numberOfAffectedRows表示受影响的行数,若要获取自增主键的id值可通过parameter.getId()得到
转载地址:http://hhtii.baihongyu.com/