我正在尝试使用此mysql_insert_id()
中提到的mysql_insert_id()
方法来检索JSP中最后生成的自动增量ID,例如PHP last_insert_id()
函数或MySQL last_insert_id()
函数。不过是Oracle 10g)。
我在Oracle数据库中有一个getGeneratedKeys()
表,该表具有名为getGeneratedKeys()
类型的question列,该列在Java中映射为TRANSPORTER
类型,并且它是序列生成的主键。
TRANSPORTER_ID
执行插入操作后,代码尝试在先前的NUMBER(35, 0)
循环上方调用此方法BigDecimal
,但失败,但出现以下异常。
javax.servlet.ServletException:java.sql.SQLException:操作不允许
我已经尝试过使用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);
,但是当它失败时,我下载了一个更高的版本rs = ps.getGeneratedKeys();
,但无济于事。可能是什么原因?