gpt4 book ai didi

java - 从准备好的语句自动生成主键 ID

转载 作者:行者123 更新时间:2023-11-30 02:58:50 26 4
gpt4 key购买 nike

我在这里发表的第一篇文章,所以请放轻松:)。

所以我使用以下代码创建了一个数据库表。(我使用 Oracle 10g 和 Oracle JDBC。我让这个 servlet 代码与我制作的 HTML 表单进行通信。)

CREATE TABLE GM_Recipes
(
recipe_ID NUMBER(4) PRIMARY KEY,
rec_name VARCHAR2(50),
recipe_cat VARCHAR2(50),
rec_desc VARCHAR2(1000),
author VARCHAR2(50)
);

现在我的servlet代码是这样的:

// Fill Recipes table
PreparedStatement pstmt = con.prepareStatement("INSERT INTO GM_Recipes(rec_name,recipe_cat,rec_desc,author) VALUES (?,?,?,?)");
pstmt.clearParameters();

String opt1 = req.getParameter("RecName"); //parameters from HTML form
String opt2 = req.getParameter("choice"); //parameters from HTML form
String opt3 = req.getParameter("CookDesc"); //parameters from HTML form
String opt4 = req.getParameter("author"); //parameters from HTML form

pstmt.setString(1,opt1);
pstmt.setString(2,opt2);
pstmt.setString(3,opt3);
pstmt.setString(4,opt4);

ResultSet rs = pstmt.executeQuery();

我想要做的是在 GM_Recipes 表中插入一行,但自动生成 Recipe_ID。(通过 HTML 表单,出于显而易见的原因,我不会要求别人输入菜谱 ID)

我的代码的后面部分依赖于要创建的新食谱的recipe_ID。

我尝试了一些从谷歌找到的生成 key 代码,但我已经研究了几个小时,并且很好奇是否有人可以分享一些有意义的见解:)谢谢

最佳答案

您应该创建一个序列数据库端(我们称之为 YOUR_SEQUENCE),然后使用它来生成 id:

PreparedStatement pstmt = con.prepareStatement("INSERT INTO GM_Recipes(recipe_id, rec_name,recipe_cat,rec_desc,author) VALUES (YOUR_SEQUENCE.nextval, ?,?,?,?)";

附注如果该表上已有记录,请注意合适的序列起始值。

关于java - 从准备好的语句自动生成主键 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36463244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com