public int insert(String cName, String ebrand, String cGender) { String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) "; Connection conn = DruidUtil.getConn(); PreparedStatement prep = null; ResultSet rs = null ; try { prep = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); prep.setString(1, cName); prep.setString(2, ebrand); prep.setString(3, cGender); prep.executeUpdate(); rs = prep.getGeneratedKeys(); if (rs.next()) { //獲取插入數據的Id(主鍵,自增長) int cId = rs.getInt(1) ; // 返回這個Id return cId ; } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally { DruidUtil.close(conn, prep, rs); } return -1; }
本例中使用的數據庫是mysql,在使用jdbc時使用getGeneratedKeys()來獲取返回值rs
其中在數據庫中id為主鍵,自增長的int類型
rs.getInt(1)獲取自增長的id的具體數值
將id作為返回值。
prep = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); prep.setString(1, cName); prep.setString(2, ebrand); prep.setString(3, cGender); prep.executeUpdate(); rs = prep.getGeneratedKeys(); if (rs.next()) { //獲取插入數據的Id(主鍵,自增長) int cId = rs.getInt(1) ; // 返回這個Id return cId ; }