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&characterEncoding=utf8&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才是正確的。

