簡體   English   中英

如何使用prepareStatement插入last_insert_id?

[英]How do I insert last_insert_id using preparedStatement?

我在准備好的語句中插入“ last_insert_id”時遇到困難。我了解了如何在准備好的語句中選擇last_insert_id,如下所示:

PreparedStatement getLastInsertId = con.prepareStatement("SELECT LAST_INSERT_ID()");

當我使用相同的過程在我的preparestatement中插入last_insert_id時,如下所示:

1.  PreparedStatement pst =  con.prepareStatement("insert into introducer_table  values(?,?,?,?)");
2.     
3.     //introducer details into database
4.       pst.setString(1,LAST_INSERT_ID());
5.     pst.setString(2, nameofintroducer);
6.     pst.setString(3, accountno);
7.     pst.setString(4, signofintroducer);

我在第一列中獲得``空''值。有人可以幫助我擺脫這個問題嗎

如果您一次執行兩個保存操作,請使用getGeneratedKeys() ,這幾乎是java。

我不是SQL專家,但在這里我找到了一種使用getGeneratedKeys()獲取生成的ID的方法

    long generatedId= 0L;
    statement = con
            .getConnection()
            .prepareStatement(
                    "insert into  new_user set name= ? , contact= ? , ....",
                    statement.RETURN_GENERATED_KEYS);
    statement.setString(1, "examplename");
    statement.setString(2, "examplecontact");
    ------
    statement.executeUpdate();
    ResultSet generatedKeys = statement.getGeneratedKeys();
    if (generatedKeys.next()) {
        generatedId = generatedKeys.getLong(1);// here is your generated Id , use it to  insert in your introducer_table
    }

     PreparedStatement pst =  con.prepareStatement("insert into introducer_table  values(?,?,?,?)");

         //introducer details into database
         pst.setString(1, generatedId);
         pst.setString(2, nameofintroducer);
         pst.setString(3, accountno);
         pst.setString(4, signofintroducer);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM