一、创建且运行JPA工程

1. 创建JPA 工程

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

(2)JPA version选择 2.0

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

 

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

 

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

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

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

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

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"/>

(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>

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 {

 

 

(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     }

 

 

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

 

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

 

 

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();

6.查看结果

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

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

 

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

8.错误地方

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

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

 

转载于:https://www.cnblogs.com/jtfr/p/10362388.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值