[英]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.