在Java Derby中获取最后一次插入的方法是使用JDBC的getGeneratedKeys()函数。以下是一个完整的示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class DerbyExample {
public static void main(String[] args) {
try {
// 连接到Derby数据库
Connection conn = DriverManager.getConnection("jdbc:derby:myDB");
// 创建表
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE myTable (id INT GENERATED ALWAYS AS IDENTITY, name VARCHAR(50))");
// 插入数据并获取自动生成的ID
String insertQuery = "INSERT INTO myTable (name) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(insertQuery, Statement.RETURN_GENERATED_KEYS);
pstmt.setString(1, "John");
pstmt.executeUpdate();
// 获取自动生成的ID
ResultSet rs = pstmt.getGeneratedKeys();
if (rs.next()) {
int lastInsertId = rs.getInt(1);
System.out.println("Last inserted ID: " + lastInsertId);
}
// 关闭连接
rs.close();
pstmt.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上述代码中,首先通过DriverManager.getConnection()
方法连接到Derby数据库。然后使用Statement.executeUpdate()
方法创建一个名为myTable
的表。接下来,使用PreparedStatement
对象执行插入操作,并通过Statement.RETURN_GENERATED_KEYS
参数告知数据库返回自动生成的键。然后,通过PreparedStatement.getGeneratedKeys()
方法获取自动生成的键的结果集。最后,通过ResultSet.getInt()
方法获取最后一次插入的ID。
请注意,上述代码仅为示例,实际应用中需要根据具体情况进行适当的异常处理和资源释放。
领取专属 10元无门槛券
手把手带您无忧上云