如何获取数据表中自增主键的值

咕噜噜zmj 咕噜噜zmj     2022-10-06     327

关键词:

一、MySql数据库

  当向数据库中插入一条数据的时候,默认是拿不到自增主键的值的, 需要设置如下两个属性才可以拿到主键值!

  设置userGeneratedKeys属性值为true:使用自动增长的主键。使用keyProperty设置把主键值设置给哪一个属性

1   <insert id="addEmp" parameterType="com.neuedu.mybatis.bean.Employee" useGeneratedKeys="true" keyProperty="id" databaseId="mysql">
2     insert into tbl_employee(last_name,email,gender) 
3     values(#{lastName},#{gender},#{email})
4   </insert>

二、Oracle数据库

  1、需要在oracle数据库中创建自增序列

      create sequence emp_seq
      start with 1;

   2、在sql映射文件中配置:

      order="BEFORE" :设置selectKey中包含的语句先执行

      resultType:指定返回类型

      keyProperty:将返回值赋值给指定的列

1   <!-- Oracle数据库获取主键自增 -->
2   <insert id="insert" databaseId="oracle">
3     <selectKey keyProperty="id" resultType="int" order="before">
4       select emp_seq.nextval from dual
5     </selectKey>
6     insert into tbl_emp values(#{id},#{lastName},#{gender},#{email})
7   </insert>

 



postgresql自增主键的用法以及在mybatis中的使用(代码片段)

...只需要统一配置,无需手动设置主键值;一、MySql中自增主键的使用1、创建一个自增主键的表createtablet_user( `id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键id', `age`INT(11)NOTNULLDEFAULT10COMMENT 查看详情

mybatis返回自增主键的xml方式

...edKeys和keyProperty将useGeneratedKeys设为true,keyProperty的值设为数据表对应DO的属性名即可如一点坑:修改了insert方法,但insert方法返回的值依旧是受影响行数要获得自增主键,需要在执行insert方法后,再在实例的get主键方法获得因为... 查看详情

提取自增主键的标准做法是啥?

...能够在程序中使用它们的主键访问这些对象。从数据库中获取此密钥的 查看详情

获取 HSQLDB 中自增变量的值

...0-3109:44:50【问题描述】:我有一个自动递增其主键的表。如何返回这个值当前在HSQLDB中使用的SQL?我找到了thisanswer,但它没有完整说明如何从特定表中获取它。【问题讨论】:【参考方案1】:如果主键列被声明为IDENTITY,那么... 查看详情

phpmysql求一个获取主键的简单方法吧!

...来做判断,求个方法呀。参考技术A自增主键不都是创建数据表的时候规定好的吗?`id`int(10)NOTNULLAUTO_INCREMENT,你是想获得这个id的值来判断吗? 参考技术B每次insert一条数据后再执行一条sql就行了,SELECTLAST_INSERT_ID()ASlastinsertid 参考技... 查看详情

mybatis执行insert后马上能获取自增主键的语句写法(代码片段)

<!--keyColumnkeyPropertyuseGeneratedKeys用于在插入数据后,能直接使用user.getId()获取主键--><insertid="insert"keyColumn="Id"keyProperty="id"parameterType="com.chinacarbonal.carboncms.bean.UserRole"useGeneratedK 查看详情

如何使用 Hibernate 在 MySQL 中获取自增主键值

】如何使用Hibernate在MySQL中获取自增主键值【英文标题】:Howtogettheauto-incrementprimarykeyvalueinMySQLusingHibernate【发布时间】:2011-09-1420:15:03【问题描述】:我正在使用Hibernate访问MySQL,并且我有一个带有自动增量主键的表。每次我在... 查看详情

mysql自增主键怎么用(代码片段)

导航自增主键怎么设置MySQL是怎么保存自增主键的自增主键的修改机制造成自增主键不连续的几种情形自增主键和UUID及随机ID比较自增主键的好处自增主键的坏处UUID及随机ID参考文章自增主键怎么设置通常,自增主键的设置... 查看详情

mysql自增主键怎么用(代码片段)

导航自增主键怎么设置MySQL是怎么保存自增主键的自增主键的修改机制造成自增主键不连续的几种情形自增主键和UUID及随机ID比较自增主键的好处自增主键的坏处UUID及随机ID参考文章自增主键怎么设置通常,自增主键的设置... 查看详情

mybatis(mapper映射文件)

   <!--parameterType:参数类型,可以省略,获取自增主键的值:mysql支持自增主键,自增主键值的获取,mybatis也是利用statement.getGenreatedKeys();useGeneratedKeys="true";使用自增主键获取主键值策略keyProperty;指定对应的主... 查看详情

mybatis自增主键返回

...执行insert提交之前自动生成一个自增主键。通过mysql函数获取到刚插入记录的自增主键:LAST_INSERT_ID()是insert之后调用此函数。修改insertUser定义: 非自增主键返回:使用mysql的uuid()函数生成主键,需要修改表中id字段类型为stri... 查看详情

sqlserver2000中如何设置自增主键?

设置自增主键的具体操作,在插入记录时,不插入自增主键,如何保证其他他字段成功插入!谢谢!在建立表的时候,把主键属性中的自增长设置为true,跨度是自动设为一的参考技术A在插入数据的时候把除自增字段外的其它字段的字... 查看详情

innodb自增主键的一些问题vsmysql获得自增字段下一个值

今天发现批量插入下,自增主键不连续了。。。。。。。InnoDBAUTO_INCREMENTLockModesThissectiondescribesthebehaviorof AUTO_INCREMENT lockmodesusedtogenerateauto-incrementvalues,andhoweachlockmodeaffectsreplication.Auto-i 查看详情

postgresql自增主键的问题与扩展(代码片段)

...差异的:设置自增主键,Oracle需要创建序列,如何创建?有兴趣的可以去百度,这里就不浪费篇幅了,毕竟以后还会再使用oracle数据库机会近乎等于0。大概就是需要创建一个序列,这个序列有一个初始... 查看详情

mycat分片表全局自增主键测试

mycat分片表全局自增主键测试mycat分片表全局自增主键测试一、全局序列号介绍在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配... 查看详情

记一次mybatis返回自增主键的低级错误!(代码片段)

...>代码如上一切配置都没问题,然后我通过如下代码获取IDintuserId=baseDao.insert(user);结果返回的是1,这里就犯了低级错误,应该使用:baseDao.insert(user);intuserId=user.getUserId();应该通过get获取!!! 查看详情

mycat全局系列号的学习和配置

...系列号:1.1产品介绍:在实现分库分表的情况下,数据库自增主键无法保证自增主键的全局唯一。为此,mycat提供了全局sequence,并且提供了包含本地配置和数据库配置多种实现方式。1.2模拟自增主键会出现的问题:脑瓜子有点... 查看详情

关于sql优化,你需要掌握这些

1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?(1)如果表的类型是MyISAM,那么是18因为MyISAM表会把自增主键的最大ID记录到数据文件里,... 查看详情