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 ; }