有人知道如何id
从1开始生成,以便下一个对象具有2,依此类推吗?
我尝试了以下方法,但不起作用:
class students{
private int id;
private String name;
public student(String name){
this.id=id++;
this.name
}
}
您需要一个 静态的 类成员来跟踪上次使用的索引。确保还实现一个复制构造函数:
class students
{
private static int next_id = 0; // <-- static, class-wide counter
private int id; // <-- per-object ID
private String name;
public students(String name)
{
this.id = ++students.next_id;
this.name = name;
// ...
}
public students(students rhs)
{
this.id = ++students.next_id;
this.name = rhs.name;
// ...
}
public static void reset_counter(int n) // use with care!
{
students.next_id = n;
}
// ...
}
更新: 正如@JordanWhite建议的那样,您可能希望使static计数器成为 atomic
,这意味着可以安全地同时使用(即一次在多个线程中使用)。为此,将类型更改为:
private static AtomicInteger next_id = new AtomicInteger(0);
增量读取和复位操作变为:
this.id = students.next_id.incrementAndGet(); // like "++next_id"
students.next_id.set(n); // like "next_id = n"
问题内容: 我在Employee类中有以下定义 现在,我想使用现有员工ID导入现有员工。即使在保存之前设置了员工ID,也会忽略分配的ID,并存储自动递增的ID。我们如何覆盖呢? 问题答案: 我编写了自己的生成器来解决此问题。 并像这样使用它:(替换包名)
问题内容: 我想将用户持久保存到数据库中,并使用IDENTITY生成类型创建的User的ID(PK)的当前方案。例如 但我想在以下情况下进行操作:1)用户明确设置。2)如果未设置用户,则将自动分配它,并且它必须是唯一的。 请建议我一些可用的选项,以便我解决。谢谢。 问题答案: 您可以为此目的定义您的自定义ID生成器,如本SOAnswer中指出的那样 它的代码如下所示: 和
问题内容: 有没有一种方法可以在SWT小部件上自动生成ID,以便UI测试可以引用它们?我知道我可以使用seData手动设置ID,但是我想以某种通用的方式为现有应用程序实现此功能。 问题答案: 您可以使用和为应用程序中所有外壳递归分配ID 。 设置ID 您可以使用方法访问应用程序中所有活动的(未处置的)Shell 。您可以遍历每个子项的所有子项,并使用方法为每个子项分配一个ID 。 如果是,则它可能
在尝试创建具有自动生成ID的表时,我遇到了一个异常: commandAcceptanceException:“执行DDL时出错”create table seat(id bigint not null,description varchar(255),num integer not null,PROCY decimal(19,2),row char(255)not null,primary key
问题内容: 我正在使用JPA(EclipseLink)和Spring。假设我有一个带有自动生成的ID的简单实体: 在我的DAO类中,我有一个调用此实体的insert方法。我希望该方法为新实体返回生成的ID,但是当我对其进行测试时,它将返回。 我还有一个包装DAO的服务类,如果有区别的话: 问题答案: 该ID仅保证在刷新时生成。持久实体只会使它“附加”到持久性上下文。因此,要么显式刷新实体管理器:
问题内容: 嗨,我编写了这样的代码 但是我从DAO手动设置了它,例如“ e.setUserID(01);”。否则将不插入行是否有任何过程来获取ID值并检索自动生成的值。我想我会得到一些帮助 问题答案: 采用