用JPA和Hibernate简化数据库操作:创建和持久对象
#database #java #hibernate #jpa

在上一篇文章中,我们设置了一个数据库和JPA配置,让我们创建一个Java类学生,并查看如何使其与JPA一起使用。

让我们创建一个只有两个字段ID和名称的学生课。

注意:类仅包含用于演示目的的成员变量。您需要添加适当的Getters和Setter

public class Student {
  private int id;
  private String name;
}

使JPA知道我们希望此Java类成为数据库中的表格,我们将使用JPA接口提供的注释。

我们使用的第一个注释是 @entity 。该注释告诉我们,此类与JPA有关,我们可以使用此类JPA进行数据库操作。

@Entity
public class Student {
  private int id;
  private String name;
}

现在,让我们确切告诉JPA数据库中的哪个表格需要映射。

为此,我们将使用 @Table 注释。此注释可以在其中带有一些参数。

名称参数用于用数据库中的表映射。

@Entity
@Table(name = "Student _Table")
public class Student {
  private int id;
  private String name;
}

即使我们已经在数据库中没有Student_table,JPA也会创建一个。

由于我们正在处理关系数据库,因此每个表都需要一个主键。要将成员变量标记为表中的主要键,我们使用 @id 注释。

@Entity
@Table(name = "Student _Table")
public class Student {
  @Id
  private int id;
  private String name;
}

现在,现在ID成员变量是我们表的主要键。在主类中,让我们创建一个学生对象以将其保存在数据库中。

public class Main {
  public static void args) {
      Student student = new Student();
      student.setld(1);
      student.setName("Sohail Shah");
  }
}

要使用JPA将该学生对象保存在数据库中,我们需要一个Entity Manager对象。我们从持久性类中的Entity Manager Factory方法中获取此Entity Manager对象。

public class Main {
  public static void args) {
      Student student = new Student();
      student.setld(1);
      student.setName("Sohail Shah");
      EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myPersistenceUnit");
      EntityManager entityManager = entityManagerFactory.createEntityManager();
  }
}

createentityManagerFactory该方法以我们在持久性上下文文件中创建的持久性单位名称的名称。就我而言,这是mypersistenceunit,但可以是任何东西。

现在,我们可以使用实体管理器上的持久方法来保存我们的学生对象。

entityManager.persist(student);

这是我们将学生对象保存在数据库中所需要做的。但是我们需要通过交易将持久性运作包围。交易应在持续操作之前开始并在持续操作后关闭。

我们从Entity Manager那里获得了一个交易对象。

EntityTransaction transaction = entityManager.getTransaction();

使用事务对象包围持久操作,我们将具有

EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
entityManager.persist(student);
transaction.commit();
entityManager.close();
entityManagerFactory.close();

现在,如果我们运行应用程序,并检查数据库,我们可以看到我们的学生对象实际上已保存。

Image description

我们不必编写任何SQL查询来将数据插入表中。我们一直都在与物体一起工作,作为Java开发人员很棒。

这是完整的主类:

public class Main {
  public static void args) {
      //Creating a student object
      Student student = new Student();
      student.setld(1);
      student.setName("Sohail Shah");
      //Creating a entity manager factory object
      EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myPersistenceUnit");
      //creating entity manager using the entity manager factory
      EntityManager entityManager = entityManagerFactory.createEntityManager();
      //creating a transaction object using the entity manager
      EntityTransaction transaction = entityManager.getTransaction();
      //beginning the transaction
      transaction.begin();
      //Persisting the student object
      entityManager.persist(student);
      //committing the transaction
      transaction.commit();
      //closing the entity manager
      entityManager.close();
      //closing the entity manager factory
      entityManagerFactory.close();
    }
}

Click here for the previous post |单击此处获取下一篇文章


关注我:TwitterLinkedInGitHubLinktree