使用RETURN_GENERATED_KEYS的PreparedStatement无法返回生成的密钥?

时间:2012-12-18 14:12:59

标签: java mysql jdbc

一些环境信息:

  1. MySQL的连接器的Java-5.1.22-bin.jar;
  2. mysql标准版5.5;
  3. jdk 1.6;
  4. Netbeans IDE;
  5. Windows XP;
  6. 我的Java代码如下:

    MySQLConnection conn = (MySQLConnection)DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "root", "");
    String sql = "INSERT INTO `table_name` (`col1`,`col2`,...`colN`) VALUES (value1,value2,...,valueN)";
    Statement stmt = conn.createStatement();
    int rows = stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
    
    ResultSet rs = stmt.getGeneratedKeys();
    if (rs != null && rs.next()) {
        int id = rs.getInt(1);
    }
    

    该表有一个名为“id”的主键columen,带有auto_increment属性。执行后,表中有一个插入的记录。但是rs.next()返回false,我无法获得自动生成的主键值。

    有任何线索吗?

0 个答案:

没有答案