JDBC取得刚插入的自增长列的ID

来源:互联网 发布:淘宝ahc旗舰店是真的吗 编辑:程序博客网 时间:2024/04/30 02:11
 public void insert(){  int autoIncKeyFromApi = -1; //第一步:定义autoIncKeyFromApi用于接收ID的数值;autoIncKeyFromApi  Connection conn = DbConnectionManager.getConnection();  PreparedStatement ps = null;  ResultSet rs = null;  String sql = null;  sql = "insert into tab_tsmInfo VALUES()";  logger.debug(sql);        try {         ps = conn.prepareStatement(sql);/**增加Statement.RETURN_GENERATED_KEYS项,否则会报错:*java.sql.SQLException: Generated keys not requested. You need to *specify Statement.RETURN_GENERATED_KEYS to *Statement.executeUpdate() or Connection.prepareStatement().*网上说的是放在ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);*但是我试过放在这行仍然会报错,放在下一行就不报错了,不知道为什么。*/         ps.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);         rs = ps.getGeneratedKeys();      if (rs.next()) {       System.out.print(rs.getInt(1));       //取得刚插入的行的ID       autoIncKeyFromApi = rs.getInt(1);      }      rs.close();      rs = null;   ps.close();   ps = null;        } catch (SQLException e) {            // TODO Auto-generated catch block            logger.debug(e.toString());        }finally{   if (rs != null) {    try {     rs.close();    } catch (Exception e) {     e.printStackTrace();    }   }   if (ps != null) {    try {     ps.close();    } catch (Exception e) {     e.printStackTrace();    }   }   DbConnectionManager.freeConnection(conn); }


 

原创粉丝点击