如何向数据库添加时同时返回ID

来源:互联网 发布:广西网络电视台直播 编辑:程序博客网 时间:2024/06/05 08:39

我们在做项目开发时很多时候都需要数据库的增删改查,而添加数据后又想得到该项数据在数据库中的主键值,这里有一个非常方便的方法可以在插入数据的同时获得主键值。

public void save(Person p) throws SQLException {String sql = "insert into person (name,pwd,sex,age,email,loves) values(?,?,?,?,?,?)";Connection conn = DbUtil.getConnection();PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);pst.setString(1, p.getName());pst.setString(2, p.getPwd());pst.setString(3, p.getSex());pst.setInt(4, p.getAge());pst.setString(5, p.getEmail());StringBuffer loves = new StringBuffer("");//将爱好信息拼成字符串for(String s:p.getLoves()){loves.append(s);loves.append(",");}//如果用户没选择爱好,则写入""if(loves.length()>0){loves.substring(0, loves.length()-1);pst.setString(6, loves.toString());}else{pst.setString(6,"");}pst.executeUpdate();ResultSet rs = pst.getGeneratedKeys();rs.next();int id = rs.getInt(1);p.setId(id);DbUtil.closeConnection(conn);}

注意上面代码:要添加Statement.RETURN_CENERATED_KEYS

 conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
就可以用 pst.getGenerateKeys()方法得到主键。



原创粉丝点击