使用Java根据数据库中的最大ID生成下一个ID
Posted
技术标签:
【中文标题】使用Java根据数据库中的最大ID生成下一个ID【英文标题】:Generate next Id as per the max id in database using Java 【发布时间】:2014-05-03 10:15:40 【问题描述】:我正在开发一个 Web 应用程序。它将有多个用户。我正在使用 mysql 作为数据库。
在我的应用程序中,我正在获取最新的 id (from the database, using max(id))
,然后为新注册生成下一个 id。这种方法是不正确的,因为 id 可能会在我更新 id 之间发生变化
我要最新的身份证。我google了一下,发现"last_insert_id()"
但是,我尝试了"SELECT last_insert_id() FROM rdtype "
,但它给出的 0 与记录数相同。
我应该如何进行?
【问题讨论】:
只是“SELECT LAST_INSERT_ID();” 查看this 答案可能对您有所帮助。 【参考方案1】:您应该使用 AUTO_INCREMENT 属性作为 id。 MySQL 将在每次插入时处理递增的 ID。 AUTO_INCREMENT 属性可用于为新行生成唯一标识。
在http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html查看 MySQL 参考
【讨论】:
【参考方案2】:我正在使用 Hibernate 进行数据库连接并且可以正常工作。我的数据库中有两列,一列是 ID(生成器类型是增量,通过休眠),另一列是注册 ID。我正在获取最大 ID,然后获取该最大 ID 的注册 ID,然后将该注册 ID 添加 1 以获得新的注册 ID....此外,我需要在将其保存到数据库之前获取这个新的注册 ID .
【讨论】:
以上是关于使用Java根据数据库中的最大ID生成下一个ID的主要内容,如果未能解决你的问题,请参考以下文章