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

作者:廊坊淘贝游戏开发公司 阅读:75 次 发布时间:2023-05-15 17:43:51

摘要:  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/tb/5785.html

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

    CTAPP999

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

    微信联系

    在线咨询

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


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


    在线咨询

    免费通话


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


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

    免费通话
    返回顶部