使用 getter 和 setter 加载对象

Loading an Object with getter and setter

我是 Java 对象的新手,我的问题是:

当我调试我的代码时,只有 ID 设置为 5,所有其他变量都为空。

Person person5 = new Person();
person5.setID(5);
person5.getAge();


@Id @Column(name = "ID") 
private Integer id; 

@Column(name = "AGE") 
private Integer age; 

public Integer getId() { 
return id; 
} 

public void setId(Integer id) { 
this.id = id; 
} 

public Integer getAge() { 
return age; 
} 

public void setAge(Integer age) { 
this.age = age; 
}

我做错了什么?有人可以帮助我吗?

  1. 您没有向我们展示您的 getter 和 setter 函数
  2. 将您的代码替换为 Person person5 = new Person(); person5.setID(5); person5.getAge();
  3. 你没有设置此人的年龄。既不在构造函数中也不作为 person5.setAge(X)

这个问题很常见,您应该访问一些教程页面。 Whosebug 不是一个。

Person person5 = new Person();

您创建了一个新人物

person5.setID(5);

您决定新创建的人的 ID 为 5。

person5.getAge();

由于您没有明确告诉 Java 更改构造函数设置的人的年龄,它会告诉您它被告知的内容,即 nothing.

现在我希望在我的对象 person5 中包含 ID 为 5 的人拥有的所有信息,在对象 person5

在这一点上,Java 不知道你说的是哪个人。如果你想让它拥有一个相似的人的所有属性,你必须告诉 Java 要么将所有这些属性设置到你的对象中,要么使用值(大概来自数据库)创建一个新的属性。

在深入了解数据库连接等更深层次的概念之前,最好先消除对 OOPS 的疑虑。

您似乎在使用 JPA。然后,从数据库中检索信息的正确方法不是简单地新建一个对象并设置 id,您必须通过 EntityManager:

从数据库中获取它
final Person person5 = em.find(Person.class, 5);