你可以看看这里,大致有三种办法:
#方法一是使用last_insert_idSELECT LAST_INSERT_ID()
#方法二是使用max(id),但是不适用高并发环境下。
方法三是创建一个存储过程,在存储过程中调用先插入再获取最大值的 *** 作
#方法四使用@@identity
select @@IDENTITY
#基本MySQL的学习,可以学习这里。使用MariaDB数据库管理系统。 linuxprobe.com/chapter-18.html
#出处:
你可以先用sql语句查询出数据库的结构,就可以知道那个字段是主键。如果你插入的数据不包含主键,那么主键就是由数据库生成的,比如是自增序列或uuid,这时候需要从数据库中读取出来,你可以用刚才插入的数据作为条件查询,同时选择只取一条记录,当然这种方式也不是很可靠,尤其是高并发下;如果插入数据包含主键,那么返回值就在你插入数据的对应位置。hibernate向mysql插入一条数据后,得到该条数据主键的方法。我的主键是自增长的。方法一:保存完成后,直接用该实体的getId的方法就可以得到。因为保存完成后,hibernate会自动将id赋值给实体。关键代码如下:
iUserMessageDao.save(userMessage)
int id = (int) userMessage.getId()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)