【问题标题】:How shall I generate an id for each record in a database table?如何为数据库表中的每条记录生成一个 id?
【发布时间】:2017-12-20 00:31:40
【问题描述】:

我关注https://www.javatpoint.com/crud-in-servlet 在 servlet 和 mysql 中创建 CRUD 应用程序。

每个用户在网页中输入他的信息并提交到 Web 服务器,然后调用 servlet SaveServlet 将信息保存为数据库表中的记录。然而,数据库表有一个额外的“id”。 SaveServlet.java 不会为每条记录创建一个 id。所以我想知道如何为每条记录创建一个 id?

谢谢。

【问题讨论】:

  • 当您在 MySQL 中创建数据库时,您将拥有一个主键字段 id,它将被配置为自动增量。您不插入 id,数据库会为您处理。
  • 欢迎来到 Stack Overflow。请参阅stackoverflow.com/help/how-to-ask,了解如何提出一个体面的问题。问题需要包含您尝试过的事情,以及“我该怎么做?”以外的问题,因为我们不会为您做作业。随意编辑此问题以使其符合要求。
  • @dstudeba 谢谢。我懂了。如果为每条记录创建不同的id,是否可以防止同一个人再次输入相同的信息?
  • @Mary 是的,您需要查询数据库以检查用户是否已经存在,然后在匹配用户时发出警告消息。如果你有两个 John Thompson 显然是个问题,但你可以避免我使用电子邮件作为登录名。
  • @dstudeba 谢谢。 mysql是否提供除自动增量以外的其他方式来创建唯一id?

标签: java mysql database servlets


【解决方案1】:

如果您使用的是 jpa/hibernate,那么您的实体必须在记录 id 字段上具有 @Id 注释(您不需要设置它,它将根据您在实体类中定义的 Id 生成机制自动完成,并且数据库架构)。

如果您使用普通 jdbc 来保存记录,那么您需要检查数据库主键是如何定义的。对于 oracle,您可以使用您的 sequence.nextvalue 来设置主键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多