【发布时间】:2021-04-24 10:37:53
【问题描述】:
就我而言,我有类和子类。问题是当我自动搜索我的函数增量 id 时。当我第一次点击搜索时,它上传了 5 个 ID,当我添加一个并返回搜索时,它上传了 5 个我有 +(5 个旧 + 1 个新)的 ID。然后,如果我想添加新的,它会给他 id 5+6 + 1 new = 13 id。
类 auto long 有 id 和 name:
public static AtomicInteger idSequence = new AtomicInteger();
public Car(String name) {
this.id = (long)idSequence.incrementAndGet();
this.name= name;
}
子类:
public OldCars(String name){
super(name);
}
从 H2 更新的功能:
public static List<Car> uploadAllCars() throws SQLException, IOException {
Connection connection= connectToDatabase();
List<Car> listOfCars= new ArrayList<>();
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM CARS");
while(rs.next()){
Long id = rs.getLong("id");
String name= rs.getString("name");
Car car= new Car(name);
car.setId(id);
listOfCars.add(car);
}
closeConnectionToDataBase(connection);
return listOfCars;}
问题是如何在没有 id 总和的情况下停止自动递增和调用函数。我正在调用 uploadAllCars 函数来搜索每次特定的汽车,但它会立即自动增加。
编辑:我希望用户输入姓名(不是 id)
【问题讨论】:
-
顺便说一下,我们通常让数据库引擎管理递增序列号并将其分配给每个新行。该杂务是数据库引擎的特色之一。您无需管理
AtomicInteger等。引擎可能比你或我做得更好。如果您使用的工具和应用程序不是这个特定的 Java 应用程序,那么 ID 生成将被普遍调用。如果您需要新生成的 ID,JDBC 为您提供了请求它们的工具。
标签: java h2 atomicinteger