【问题标题】:JDBC :how generate primary keys automatically and insert it into databaseJDBC:如何自动生成主键并将其插入数据库
【发布时间】:2016-07-28 19:47:31
【问题描述】:

我有一张这样的桌子,

创建表 ruff(id varchar(25) 主键,name varchar(30));

我需要从 jdbc 帮助中自动插入 id 的主键吗?

【问题讨论】:

标签: java jdbc oracle11g


【解决方案1】:

您可以在 Oracle 数据库中定义序列,也可以指定序列的自定义生成方法。并且当您将值插入表中时,您可以使用先前生成的序列来插入主键,而不是提供来自用户的值。

【讨论】:

    【解决方案2】:

    JDBC 不会自动生成 ID。通常是数据库执行此操作,但如果不使用触发器,即使是数据库也不会为VARCHAR(25) 生成一个。

    要检索数据库生成的密钥,您可以使用con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);,尽管这可能不适用于触发器生成的值。

    【讨论】:

    • 您可以do this 检索密钥,即使它们是由触发器生成的。但是,您会为字符串键执行此操作...
    • 对于Oracle,您可以使用Statement.RETURN_GENERATED_KEYS,您只需要准备好处理它不返回生成的id,而是ROWID,然后可以使用它来查询获取实际生成的 id 的行。
    【解决方案3】:

    在 Oracle 中定义一个序列,并在值子句下的插入语句中用 sequence.nextval 填充您的 ID 例如- 插入 ruff(id,name) values(your_sequence.nextval,'name')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多