获取第一个表中最后添加的id,并使用java将其插入另一个表中
我正在尝试将我的获取第一个表中最后添加的id,并使用java将其插入另一个表中,java,mysql,Java,Mysql,我正在尝试将我的章节表的最后添加id插入课程表 这是我的密码: String Sql = "INSERT INTO lesson" +"(title, chapter_id, source)" +"VALUES(?,?,?)"; String getId = "SELECT MAX(id) AS id FROM chapter"; rs = pst.executeQuery(getId); int lastid = rs.getInt("id");
章节
表的最后添加id插入课程
表
这是我的密码:
String Sql = "INSERT INTO lesson"
+"(title, chapter_id, source)"
+"VALUES(?,?,?)";
String getId = "SELECT MAX(id) AS id FROM chapter";
rs = pst.executeQuery(getId);
int lastid = rs.getInt("id");
rs.close();
pst=conn.prepareStatement(Sql);
pst.setString(2,txt_lessonTitle.getText());
pst.setInt(3,lastid);
pst.setString(4,txt_lessonContent.getText());
pst.executeUpdate();
我有一个错误:
在结果集开始之前
你需要检查是否有一些结果
rs = pst.executeQuery(getId);
if (rs.next()) {
int lastid = rs.getInt("id");
rs.close();
pst=conn.prepareStatement(Sql);
pst.setString(2,txt_lessonTitle.getText());
pst.setInt(3,lastid);
pst.setString(4,txt_lessonContent.getText());
pst.executeUpdate();
}
试试这个:
int lastid;
rs.afterLast();
while (rs.previous()) {
lastid = rs.getInt("id");
}
rs.close();
// other code statements can be here
谢谢你们。我的错误是:
pst.setString(2,txt_lessonTitle.getText());
pst.setInt(3,lastid);
pst.setString(4,txt_lessonContent.getText());
而不是使用
pst.setString(1,txt_lessonTitle.getText());
pst.setInt(2,lastid);
pst.setString(3,txt_lessonContent.getText());
感谢您的回答和建议,它给了我答案。正确的说法是您需要将光标移动到第一行,因为默认情况下,
ResultSet
光标最初位于第一行之前要设置参数的索引,您应该从1开始,而不是从2开始。这可能会导致错误:)