有時候,我們的主鍵id是自動生成的,然後想要插入記錄後,就取得這條記錄的id,怎麼做呢?
比如我現在的一個student表的字段爲:id(PK autoIncrement), name, school, tel, password。這五個,現在我要插入一條記錄,id是自動生成的, 不用傳入。
應該這樣:
Connection conn = null;
int id = 0;
try {
conn = getConn();
String sql = "insert into student(name,school,tel,password) values(?,?,?,?)";
//String getId = "select "
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//獲取到返回的id主鍵
ps.setString(1, stu.getName());
ps.setString(2, stu.getSchool());
ps.setString(3, stu.getTel());
ps.setString(4, stu.getPwd());
int i = ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()){
id = rs.getInt(1);
}
System.out.println("ID:"+id);
ps.close();
conn.close();
return id;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()){
id = rs.getInt(1);
}