使用JPA操作Oracle数据库:简单容易
Java Persistence API (JPA) 提供了管理关系数据库(包括 Oracle 数据库)的标准方法。它允许开发人员使用对象来表示数据库中的数据,从而简化了使用数据库的过程并带来更好的可读性和可维护性。在这篇文章中,我们将介绍如何使用JPA来操作Oracle数据库,并展示使用JPA来操作Oracle数据库是多么简单、容易。
准备
在使用JPA操作Oracle数据库之前,我们需要确保以下几个方面:
1。已安装Java JDK并配置环境变量。
2。您已经安装了Oracle数据库并知道如何创建用户、表和数据。
3。您已经安装了用于开发 Java 应用程序的 Eclipse IDE。
第一步:创建Maven项目
我们需要在Eclipse IDE中创建一个Maven项目。在Eclipse中,打开“文件”菜单,选择“新建”->“项目”->“Maven项目”,然后选择“创建一个简单项目”,并在下一步中输入项目名称和其他详细信息。
第2步:添加JPA依赖
我们需要在Maven项目的pom.xml文件中添加JPA依赖。在pom.xml文件中添加以下代码:
org.hibernate
休眠实体管理器
5.4.22.决赛
com.oracle.database.jdbc
ojdbc8
19.3.0.0
这个 pom.xml 文件将下载所需的依赖文件并将它们添加到我们的 Maven 项目中。
第3步:配置JPA连接参数
我们需要在persistence.xml文件中配置JPA连接参数。在src/mn/resources目录下,创建一个名为persistence.xml的文件,并添加以下内容:
xmlns:xsi=”http://www.sychzs.cn/2001/XMLSchema-instance”
版本=”2.1″>
org.hibernate.jpa.HibernatePersistenceProvider
com.example.entity.Person
在此文件中,我们将持久化单元的名称指定为oraclePU。该属性将在下面的代码中使用。我们使用 Hibernate 作为 JPA 实现提供者和 Oracle JDBC 驱动程序来连接到 Oracle 数据库。
第四步:创建实体类
我们需要创建一个实体类(例如Person类)。该类将映射到数据库中的表。例如,下面是一个简单的 Person 实体类定义:
@实体
@Table(姓名=“人”)
公开课人{
@Id
@GenerateValue(策略 = GenerationType.IDENTITY)
@Column(名称=“ID”)
私人长ID;
@Column(name = “FIRST_NAME”)
私有字符串firstName;
@Column(name = “LAST_NAME”)
私有字符串姓氏;
// setter 和 getter 方法
}
在此示例中,我们使用 JPA 注释来定义实体类中与数据库表中的列关联的属性。 @Id注解将实体类中的属性标记为主键列; @GenerateValue 注释自动为此列设置唯一值; @Column注解定义了属性名和列名之间的对应关系。
第5步:创建DAO层
DAO(数据访问对象)层是数据管理的核心层。这是使用JPA操作Oracle数据库的关键。下面是一个简单的PersonDAO类的定义,用于进行Person实体类相关的数据操作:
公共类 PersonDAO {
私有静态EntityManagerFactory emf;
静态{
emf = Persistence.createEntityManagerFactory("oraclePU");
}
public static void addPerson(Person person) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(人);
em.getTransaction().commit();
em.close();
}
public static void updatePerson(Person person) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.merge(人);
em.getTransaction().commit();
em.close();
}
公共静态无效deletePerson(长ID){
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
人 person = em.find(Person.class, id);
em.remove(人);
em.getTransaction().commit();
em.close();
}
公共静态Person getPersonById(长id){
EntityManager em = emf.createEntityManager();
人 person = em.find(Person.class, id);
em.close();
归人;
}
公共静态列表 getAllPersons() {
EntityManager em = emf.createEntityManager();
字符串jpql =“从人p中选择p”;
TypedQuery 查询 = em.createQuery(jpql, Person.class);
列出人员 = query.getResultList();
em.close();
回国者;
}
}
该DAO类包含添加、更新、删除、查询单个记录和查询所有记录的方法。每个方法都使用 EntityManager 对象。该类中的方法是使用JPA API标准实现的,也是JPA操作Oracle数据库的核心代码。
第6步:测试代码
下面是一个简单的测试代码,可以验证我们上面的JPA和DAO层代码是否正常工作:
公开课MnApp {
public static void mn(String[] args) {
人 person1 = new Person();
person1.setFirstName(“约翰”);
person1.setLastName(“Doe”);
PersonDAO.addPerson(person1);
人 person2 = PersonDAO.getPersonById(1);
person2.setFirstName(“Jane”);
PersonDAO.updatePerson(person2);
列出人员 = PersonDAO.getAllPersons();
people.forEach(person -> System.out.println(person.getFirstName() + ” ” + person.getLastName()));
PersonDAO.deletePerson(1);
}
}
该程序创建一个新的 Person 对象,将其保存到数据库中,并从数据库中获取该对象并更改名字。之后,我们循环遍历整个数据库表并打印每个人的名字。程序将删除 Person 对象。
总结
JPA操作Oracle数据库是一个简单易行的过程。我们只需要按照上面的步骤就可以在Java应用程序中使用JPA读写Oracle数据库了。当然,这里不涉及更高级的JPA操作,但相信读者在学习完这个例子之后,一定能够对JPA有更深入的了解和掌握JPA的基本用法。