使用JPA操作Oracle数据库实现简单易行(jpa操作oracle)

使用JPA操作Oracle数据库:实现简单易行

Java Persistence API (JPA) 提供了一种标准的方式去管理关系型数据库,包括Oracle数据库。它允许开发者使用对象来代表数据库中的数据,从而简化了与数据库打交道的过程,并且带来了更好的可读性和可维护性。在本文中,我们将介绍如何使用JPA来操作Oracle数据库,并展示使用JPA操作Oracle数据库是多么的简单易行。

准备工作

在我们用JPA操作Oracle数据库之前,需要先确保以下几个方面:

1. 你已经安装了Java JDK并配置好了环境变量。

2. 你已经安装了Oracle数据库,并且知道如何创建用户、表和数据。

3. 你已经安装了Eclipse IDE用于开发Java应用程序。

步骤一:创建Maven工程

我们需要在Eclipse IDE中创建一个Maven工程。在Eclipse中,打开“File”菜单,然后选择“New” -> “Project” -> “Maven Project”,然后选择“Create a simple project”,并在下一步中输入项目名称和其他详细信息。

步骤二:添加JPA依赖

我们需要在Maven工程的pom.xml文件中添加JPA依赖。在pom.xml文件中添加以下代码:

org.hibernate

hibernate-entitymanager

5.4.22.Final

com.oracle.database.jdbc

ojdbc8

19.3.0.0

这个pom.xml文件会下载所需的依赖文件,并将它们添加到我们的Maven工程中。

步骤三:配置JPA连接参数

我们需要在persistence.xml文件中配置JPA连接参数。在src/mn/resources目录下,创建一个名为persistence.xml的文件,并添加以下内容:

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd”

version=”2.1″>

org.hibernate.jpa.HibernatePersistenceProvider

com.example.entity.Person

在这个文件中,我们指定了persistence-unit的名称为oraclePU,这个属性在后面的代码中会用到。我们使用了Hibernate作为JPA实现的提供者,并且使用了Oracle JDBC驱动器连接Oracle数据库。

步骤四:创建实体类

我们需要创建一个实体类(例如,Person类)。这个类将映射到数据库中的表。例如,下面是一个简单的Person实体类定义:

@Entity

@Table(name = “PERSON”)

public class Person {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name = “ID”)

private Long id;

@Column(name = “FIRST_NAME”)

private String firstName;

@Column(name = “LAST_NAME”)

private String lastName;

// setter and getter methods

}

在这个例子中,我们使用了JPA注解来定义实体类中的属性与数据库表中的列关联。其中@Id注解标注了实体类中的属性作为主键列;@GeneratedValue注解自动为这个列设置一个唯一的值;@Column注解定义了属性名称与列名称的对应关系。

步骤五:创建DAO层

DAO(Data Access Object)层是数据管理的核心层,它是使用JPA操作Oracle数据库的关键。下面是一个简单的PersonDAO类的定义,它用于执行与Person实体类相关的数据操作:

public class PersonDAO {

private static EntityManagerFactory emf;

static {

emf = Persistence.createEntityManagerFactory(“oraclePU”);

}

public static void addPerson(Person person) {

EntityManager em = emf.createEntityManager();

em.getTransaction().begin();

em.persist(person);

em.getTransaction().commit();

em.close();

}

public static void updatePerson(Person person) {

EntityManager em = emf.createEntityManager();

em.getTransaction().begin();

em.merge(person);

em.getTransaction().commit();

em.close();

}

public static void deletePerson(long id) {

EntityManager em = emf.createEntityManager();

em.getTransaction().begin();

Person person = em.find(Person.class, id);

em.remove(person);

em.getTransaction().commit();

em.close();

}

public static Person getPersonById(long id) {

EntityManager em = emf.createEntityManager();

Person person = em.find(Person.class, id);

em.close();

return person;

}

public static List getAllPersons() {

EntityManager em = emf.createEntityManager();

String jpql = “SELECT p FROM Person p”;

TypedQuery query = em.createQuery(jpql, Person.class);

List persons = query.getResultList();

em.close();

return persons;

}

}

这个DAO类中包含了用于添加、更新、删除、查询单个记录和查询所有记录的方法,每一个方法都使用了EntityManager对象。这个类中的方法采用JPA API标准进行实现,它们也是JPA操作Oracle数据库的核心代码。

步骤六:测试代码

下面是一个简单的测试代码,可以验证我们上述的JPA、DAO层的代码是否正确工作:

public class MnApp {

public static void mn(String[] args) {

Person person1 = new Person();

person1.setFirstName(“John”);

person1.setLastName(“Doe”);

PersonDAO.addPerson(person1);

Person person2 = PersonDAO.getPersonById(1);

person2.setFirstName(“Jane”);

PersonDAO.updatePerson(person2);

List persons = PersonDAO.getAllPersons();

persons.forEach(person -> System.out.println(person.getFirstName() + ” ” + person.getLastName()));

PersonDAO.deletePerson(1);

}

}

这个程序会创建一个新的Person对象,将其保存到数据库中,并从数据库中获取该对象并更改第一个名称。之后,我们会遍历整个数据库表并打印所有人的名字。程序会删除Person对象。

总结

JPA操作Oracle数据库是一个简单易行的过程。我们只需要按照上述几个步骤进行操作,就可以在Java应用程序中使用JPA来读写Oracle数据库。当然,这里没有涉及到更多高级的JPA操作,但相信读者经过这个例子的学习之后已经能够更深入的了解并掌握JPA的基本使用方法。


数据运维技术 » 使用JPA操作Oracle数据库实现简单易行(jpa操作oracle)