Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取第一个表中最后添加的id,并使用java将其插入另一个表中_Java_Mysql - Fatal编程技术网

获取第一个表中最后添加的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开始。这可能会导致错误:)