gpt4 book ai didi

java - 从序列中获取下一个值

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:27 25 4
gpt4 key购买 nike

我这里有一些代码来获取序列的下一个值,但它每次都会将记录总数添加到结果中。

我只是在学习准备好的语句,我认为这是一件小事,也许 rset.next() 应该是其他东西?

public void add( String title, String actor, String genre ) {
try {
String sql2 = "Select movie_seq.nextval from Movie";
pstmt = conn.prepareStatement(sql2);

rset = pstmt.executeQuery();
int nextVal = 0;
if(rset.next())
nextVal = rset.getInt(1);



String queryString = "Select MovieID, Title, Actor, Genre from Movie";
pstmt = conn
.prepareStatement(queryString,
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rset = pstmt.executeQuery();

rset.moveToInsertRow();
rset.updateInt(1, nextVal);
rset.updateString(2, title);
rset.updateString(3, actor);
rset.updateString(4, genre);
rset.insertRow();
pstmt.executeUpdate();

} catch (SQLException e2) {
System.out.println("Error going to previous row");
System.exit(1);
}
}

感谢任何帮助。

最佳答案

我认为您不需要调用 pstmt.executeUpdate();

ResultSet doc 中所述,函数 insertRow 将行存储在数据集中并存储在数据库中。

以下代码显示了添加新行所需的所有内容:

   rset.moveToInsertRow(); // moves cursor to the insert row
rset.updateString(1, "AINSWORTH"); // updates the
// first column of the insert row to be AINSWORTH
rset.updateInt(2,35); // updates the second column to be 35
rset.updateBoolean(3, true); // updates the third column to true
rset.insertRow();
rset.moveToCurrentRow();

关于java - 从序列中获取下一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542493/

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