插入一条数据,并返回该数据的主键值
private Long getGeneratedKeys(Connection connection,String sql,Object ...args) throws SQLException{
Long generatedKeys = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
for(int i = 0;i < args.length;i++){
preparedStatement.setObject(i+1, args[i]);
}
preparedStatement.executeUpdate();
resultSet = preparedStatement.getGeneratedKeys();
if(resultSet.next()){
generatedKeys = (Long) resultSet.getObject(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
JDBCTools.release(resultSet, preparedStatement, null);
}
return generatedKeys;
}
测试类
@Test
public void testGetKeyValue(){
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "INSERT INTO customers(name,address,phone) "
+ "VALUES(?,?,?)";
Long result = getGeneratedKeys(connection, sql,"Linda","CHA","13888888888");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
} finally{
JDBCTools.release(null, null, connection);
}
}