掌握JPA持久化,从“persistence.xml”开始!

作者:茂名淘贝游戏开发公司 阅读:75 次 发布时间:2023-06-06 16:55:15

摘要:JPA(Java Persistence API)是JavaEE中最重要的API之一,它提供了Java多种ORM(Object-Relational Mapping)实现的标准,将Java对象映射到关系型数据库中。而“persistence.xml”则是JPA持久化的配置文件,为JPA提供“指路明灯”。在JPA中,每个实体类都是映射到数据库中的表...

JPA(Java Persistence API)是JavaEE中最重要的API之一,它提供了Java多种ORM(Object-Relational Mapping)实现的标准,将Java对象映射到关系型数据库中。而“persistence.xml”则是JPA持久化的配置文件,为JPA提供“指路明灯”。

掌握JPA持久化,从“persistence.xml”开始!

在JPA中,每个实体类都是映射到数据库中的表。通过“persistence.xml”文件,我们可以为每个实体类配置一个对应的“映射文件”,让JPA知道如何将Java对象和数据库数据进行转换,实现ORM的自动化。

下面,让我们从导入JPA的Maven依赖开始,搭建一个简单的JPA项目,并深入了解“persistence.xml”。

一、导入JPA的Maven依赖

在pom.xml文件中添加以下依赖:

```

javax.persistence

persistence-api

2.2

org.hibernate

hibernate-core

5.4.30.Final

```

其中,“javax.persistence”是JPA的API包,“hibernate-core”则是常用的JPA实现之一,本文以Hibernate作为JPA的实现。

二、配置“persistence.xml”

在src/main/resources目录下创建一个名为“META-INF”的文件夹,并在其中创建一个名为“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_2.xsd"

version="2.2">

```

配置说明:

1、xmlns、xmlns:xsi、xsi:schemaLocation、version:

这些是XML文件必备的属性,用于指定XML元素的命名空间、XMLSchema文件的位置等。

2、persistence-unit:

指定一个持久化单元,相当于一个数据库。

3、properties:

在这里可以配置数据源、JPA实现相关的参数等。

注:具体参数可以根据使用的数据库、JPA实现不同而不同。

三、实体类的映射关系配置

我们需要告诉JPA哪个实体类需要映射到数据库中的哪个表,以及该表的主键、列、类型等信息。通过在实体类上添加注解来完成这些配置。

示例代码如下:

```

@Entity(name = "Person")

@Table(name = "person")

public class Person {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private Long id;

private String name;

private int age;

//getter、setter方法

}

```

注解说明:

1、@Entity:

表示该类是一个实体类,与数据库中的表相对应。

2、@Table:

表示实体类对应的数据库表名。

3、@Id:

表示实体类对应的表的主键。

4、@GeneratedValue:

指定主键生成策略,这里设为自动增长。

四、测试JPA代码

编写一个JPA测试类,在其中通过EntityManager,对Person实体类进行增删改查测试。

示例代码如下:

```

public class TestJPA {

private EntityManagerFactory factory;

private EntityManager em;

@Before

public void init() {

factory = Persistence.createEntityManagerFactory("myJPA");

em = factory.createEntityManager();

}

@After

public void destroy(){

em.close();

factory.close();

}

@Test

public void testAdd() {

em.getTransaction().begin();

Person person = new Person();

person.setName("Tom");

person.setAge(18);

em.persist(person);

em.getTransaction().commit();

}

@Test

public void testFind() {

Person person = em.find(Person.class, 1L);

System.out.println(person.getName() + " , " + person.getAge());

}

}

```

测试方法说明:

1、init()方法:

在测试之前,使用Persistence.createEntityManagerFactory("myJPA")获取EntityManagerFactory对象,创建EntityManager,初始化测试环境。

2、destroy()方法:

在测试完成后,关闭EntityManager,关闭EntityManagerFactory,清理测试环境。

3、testAdd()方法:

测试新增操作。

4、testFind()方法:

测试查询操作。

总结:

通过本文的案例分析,我们可以了解到JPA的基本使用方法和配置参数,以及如何通过“persistence.xml”文件对JPA持久化进行配置。

在实际开发过程中,我们可以通过优化“persistence.xml”文件配置,进一步提高系统性能和开发效率。同时,JPA也具有许多其他强大的功能,如复杂查询、多表操作等,可以帮助我们更快、更准确地完成业务开发。

  • 原标题:掌握JPA持久化,从“persistence.xml”开始!

  • 本文链接:https://qipaikaifa1.com/jsbk/9576.html

  • 本文由茂名淘贝游戏开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与淘贝科技联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:189-2934-0276


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部