RETURN_GENERATED_KEYS = 1 是Statement的属性,而PreparedStaement继承Statement所以也有拥有此属性,
故PreparedStatement.RETURN_GENERATED_KEYS就是 Statement.RETURN_GENERATED_KEYS
得到插入字段的主键Id , 但前提表中Id必须是自增长的.
ResultSet result = preparedStatement.getGeneratedKeys();
final int CUSTOMER_ID_COLUMN_INDEX = 1;
int id = result.getInt(CUSTOMER_ID_COLUMN_INDEX);
try {
connection = getConnection();
String sql = "insert into user(username, password, brief) values(?,?,?)";
preparedStatement = connection.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
preparedStatement.setString(1,user.getUsername());
preparedStatement.setString(2,user.getPasword());
preparedStatement.setString(3,user.getBrief());
preparedStatement.executeUpdate();
ResultSet result = preparedStatement.getGeneratedKeys();
if (!result.next()){
System.err.println("获取ID失败");
}
final int CUSTOMER_ID_COLUMN_INDEX = 1;
//得到主键
System.out.println(result.getInt(CUSTOMER_ID_COLUMN_INDEX));
} catch (Exception e) {
e.printStackTrace();
}
return true;
}