JPA----helloworld----02

    xiaoxiao2022-07-02  92

    使用JPA持久化对象的步骤。

    1.创建 persistence.xml, 在这个文件中配置持久化单元

         –需要指定跟哪个数据库进行交互;

        –需要指定 JPA 使用哪个持久化的框架以及配置该框架的基本属性

          JPA 规范要求在类路径的 META-INF 目录下放置persistence.xml,文件的名称是固定的

    <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="jpa-01" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <!-- 添加持久化类 --> <class>com.lishenhuan.com.Customer</class> <properties> <!-- 配置数据库的基本信息 --> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:okaya10@//10.0.7.208:1521/ORCL"/> <property name="javax.persistence.jdbc.user" value="okaya10"/> <property name="javax.persistence.jdbc.password" value="okaya10"/> <!-- 配置JPA实现产品的基本信息,即hibernate的基本信息--> <property name="hibernate.fomat_sql" value="true"/> <!-- 指定是否对输出 SQL 语句进行格式化 --> <property name="hibernate.show_sql" value="true"></property> <!-- 指定程序运行时是否在控制台输出 SQL 语句 --> <property name="hibernate.hbm2ddl.auto" value="update"></property><!-- 指定程序运行时是否在数据库自动生成数据表 --> </properties> </persistence-unit> </persistence>

    2.  创建实体类, 使用 annotation注解来描述实体类跟数据库表之之间的映射关系.

         Customer持久化类。

    package com.lishenhuan.com; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Table(name="JPA_CUSTOMER") @Entity public class Customer { private Integer id; private String lastName; private String email; private int age; @GeneratedValue(strategy =GenerationType.AUTO) @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(name="LAST_NAME") public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

    3. 使用 JPA API 完成数据增加、删除、修改和查询操作

        3.1 创建 EntityManagerFactory (对应 Hibernate 中的 SessionFactory);

         3.2 创建 EntityManager (对应 Hibernate 中的Session);

         测试类  Main.java

      

    public class Main { public static void main(String[] args) { //1. 创建EntitymanagerFactory对象 String persistenceUnitName = "jpa-01"; EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName); //2. 创建 EntityManager对象 EntityManager entityManager = entityManagerFactory.createEntityManager(); //3. 开启事务 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //4.执行持久化操作 Customer customer = new Customer(); customer.setAge(12); customer.setEmail("tom.com"); customer.setLastName("Tom"); entityManager.persist(customer); //5. 提交事务 transaction.commit(); //6. 关闭EntityManager entityManager.close(); //7. 关闭EntityManagerFactory entityManagerFactory.close(); } }

     

     

     

     

    最新回复(0)