在prepareStatement方法中传入第二参数Statement.RETURN_GENERATED_KEYS
再通过getGenerateKeys获取键值
@Test
public void test01() throws SQLException, ClassNotFoundException {
//获取自动增长的key值
String url="jdbc:mysql://localhost:3306/kanfang";
String user = "root";
String password="123456";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, user, password);
String sql ="insert into urls values(null,?,?,?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
preparedStatement.setObject(1,"测试1");
preparedStatement.setObject(2,"测试2");
preparedStatement.setObject(3,"测试3");
int i = preparedStatement.executeUpdate();
//通过此方法获取自增的key值,当前插入的数据的id
ResultSet generatedKeys = preparedStatement.getGeneratedKeys();
if (generatedKeys.next()){
System.out.println(generatedKeys.getObject(1));
}
System.out.println(i);
preparedStatement.close();
connection.close();
}