1. 创建JPA 工程

(1)选择创建 JPA Project,注意不是Java Project

一、创建且运行JPA工程

(2)JPA version选择 2.0

一、创建且运行JPA工程

(3)选择用户库,否则会出现 At least one user library must be selected. 错误

 一、创建且运行JPA工程

一、创建且运行JPA工程

(4)注意persistence.xml文件位置

 一、创建且运行JPA工程

2. 导包,我直接复制过来的包。

导入Hibernate包、导入JPA包、导入Mysql

一、创建且运行JPA工程

3.编写配置文件persistence.xml 里面要配置数据库连接相关信息和Hibernate相关信息。

(1)编写数据库连接相关信息

一、创建且运行JPA工程

1 <!-- 连接数据库的基本信息 -->
2 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
3 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://14.12.71.21:3306/jpa?useUnicode=true&amp;characterEncoding=utf8&amp;characterSetResults=utf8"/>
4 <property name="javax.persistence.jdbc.user" value="root"/>
5 <property name="javax.persistence.jdbc.password" value="xxxx"/>

一、创建且运行JPA工程

(2)Hibernate相关信息配置

 1 <!-- 配置 JPA 实现产品的基本属性. 配置 hibernate 的基本属性 -->
 2     <!-- 语句格式化 -->
 3 <property name="hibernate.format_sql" value="true"/>
 4     <!-- 语句输出 -->
 5 <property name="hibernate.show_sql" value="true"/>
 6     <!-- 自动处理表结构 -->
 7 <property name="hibernate.hbm2ddl.auto" value="update"/>
 8 <!-- 
 9 配置使用什么 ORM 产品来作为 JPA 的实现 
10 1. 实际上配置的是 javax.persistence.spi.PersistenceProvider 实现类。
11 2. 若JPA项目这个你只有一个JPA的实现产品,则也可以不配置该节点。
12 -->
13 <provider>org.hibernate.ejb.HibernatePersistence</provider>

一、创建且运行JPA工程

一、创建且运行JPA工程

4.创建实体类

(1)实体类加注解,@Entity@Table(name = "表名")两个注解。

 1 import javax.persistence.Column;
 2 import javax.persistence.Entity;
 3 import javax.persistence.GeneratedValue;
 4 import javax.persistence.GenerationType;
 5 import javax.persistence.Id;
 6 import javax.persistence.Table;
 7 
 8 @Entity
 9 @Table(name = "jpa_ustomer")
10 public class Customer {

 

 一、创建且运行JPA工程

(2)字段加注解

 

 1     // 选择主键自增方式
 2     @GeneratedValue(strategy=GenerationType.AUTO)
 3     @Id
 4     //@Column(name="ID") // 对应列名,如果不写效果一样。
 5     public Integer getId() {
 6         return id;
 7     }
 8     public void setId(Integer id) {
 9         this.id = id;
10     }
11     // 列名不一样,必须要写上,好对应。
12     @Column(name="LAST_NAME")
13     public String getLasName() {
14         return lasName;
15     }
16     public void setLasName(String lasName) {
17         this.lasName = lasName;
18     }
19     public String getEmail() {
20         return email;
21     }
22     // 一样不需要写@Column
23     public void setEmail(String email) {
24         this.email = email;
25     }

 

一、创建且运行JPA工程

 

(3)实体类需要配置到配置文件 persistence 中。

 

1 <!-- 添加持久化类 -->
2 <class>com.jtfr.jpa.helloworld.Customer</class>

 

 一、创建且运行JPA工程

5.编写测试类

(1)创建EntityManagerFactory

1 // 1.创建EntityManagerFactory
2 // 来源persistence.xml 里面的name <persistence-unit name="Jpa-1" transaction-type="RESOURCE_LOCAL">
3 String persistenceUnitName = "Jpa-1";
4 EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName);

(2)创建EntityManager

1 // 2.创建EntityManager
2 EntityManager entityManager = entityManagerFactory.createEntityManager();

(3)开启事务

1 // 3.开启事务
2 EntityTransaction transaction = entityManager.getTransaction();
3 transaction.begin();

(4)进行持久化操作(数据存入数据库中)

1 // 4.进行持久化操作
2 Customer customer = new Customer();
3 customer.setAge(12);
4 customer.setEmail("1123181523@qq.com");
5 customer.setLasName("Tom");
6 entityManager.persist(customer);

(5)提交事务

1 // 5.提交事务
2 transaction.commit();

(6)关闭EntityManager

1 // 6.关闭EntityManager
2 entityManager.close();

(7)关闭EntityManagerFactory

1 // 7.关闭EntityManagerFactory
2 entityManagerFactory.close();

一、创建且运行JPA工程

6.查看结果

(1)自动创建了表,且插入了数据

一、创建且运行JPA工程

(2)表主键是自增的方式

一、创建且运行JPA工程

 

7.总结:JPA就是Hibernate的马甲

8.错误地方

(1) Hibernate 在eclipse里面没有用户库,需要自己配置,百度有。

(2) 创建的时候选择的是2.1 需要换成2.0才是正确的。

 

相关文章:

  • 2021-11-28
  • 2021-11-09
  • 2021-12-15
  • 2021-09-08
  • 2021-10-14
  • 2021-11-30
  • 2021-11-21
  • 2021-08-24
猜你喜欢
  • 2021-09-18
  • 2022-12-23
  • 2021-12-31
  • 2022-12-23
  • 2021-05-21
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案