JDBC中添加数据成功后,如何返回主键id
// 添加成功后,获取主键值
@Test
public void test02() throws Exception {
// 加载驱动器类
Class.forName("com.mysql.jdbc.Driver");
// 创建连接对象
// "jdbc:mysql:///test"
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
// 创建执行SQL的对象
String sql = "insert into tb_user(name, age, birthday) values(?,?,?)";
/**
* 如果在添加成功后,需要获取当前记录的主键值,需要调用:
* PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
throws SQLException;
方法:
方法的参数说明:
1、需要执行的SQL语句
2、是一个是否返回主键的标识。值有以下两个:
1)Statement.RETURN_GENERATED_KEYS
2)Statement.NO_GENERATED_KEYS
*/
PreparedStatement pst = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
// 执行SQL
pst.setString(1, "qqqq");
pst.setInt(2, 15);
pst.setDate(3, new java.sql.Date(new Date().getTime()));
int count = pst.executeUpdate();
// 获取主键值
ResultSet rs = pst.getGeneratedKeys();
if (rs.next()) {
System.out.println("主键值为:" + rs.getObject(1));
}
System.out.println(count > 0 ? "添加成功!" : "添加失败");
rs.close();
pst.close();
conn.close();
}