我正在尝试在JSP中检索最后生成的自增ID,类似于PHP的
我在Oracle数据库中有一个名为
在执行插入操作后,代码尝试在前面的
mysql_insert_id()
函数或MySQL的last_insert_id()
函数,使用getGeneratedKeys()
方法,如此问题所述(虽然我使用的是Oracle 10g)。我在Oracle数据库中有一个名为
TRANSPORTER
的表,它具有一个名为TRANSPORTER_ID
的列,类型为NUMBER(35,0)
,映射到Java中的BigDecimal
类型,并且是一个序列生成的主键。Connection con;
ResultSet rs;
PreparedStatement ps;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "root";
String pwd = "root";
Class.forName("oracle.jdbc.OracleDriver").newInstance();
con = DriverManager.getConnection(url, user, pwd);
ps = con.prepareStatement("INSERT INTO transporter(transporter_name, transporter_website)VALUES(?, ?)");
ps.setString(1, "New");
ps.setString(2, "New Website");
ps.executeUpdate();
BigDecimal id = new BigDecimal(0);
rs = ps.getGeneratedKeys();
while (rs.next()) {
id = rs.getBigDecimal("transporter_id");
}
out.println("The generated id is : " + id);
在执行插入操作后,代码尝试在前面的
while
循环上方调用此方法rs = ps.getGeneratedKeys();
,但会失败并显示以下异常:我已经尝试使用javax.servlet.ServletException: java.sql.SQLException: operation not allowed
Oracle JDBC Driver版本-10.2.0.5.0
,但失败了,然后我下载了一个更高版本的11.2.0.3.0
,但仍然无济于事。可能的原因是什么?