JPA

1、JPA

JPA(Java持久性API)是存储业务实体关联的实体的来源。它显示了如何定义一个面向普通Java对象(POJO)作为一个实体,以及如何管理关系实体。

2、安装JPA

(1)创建一个新的JPA项目,首先选择File->New->JPA Project。

(2)输入项目名称JPA01,选择Target runtime jre7如下。

JPA

(3)点击下载库(如果没有库)中的用户库部分,在下载库对话框中选择EclipseLink库的最新版本,点击下一步。然后接受许可条款,单击Finish。下载后,选择用户库部分中的下载库,然后单击Finish完成操作。

JPA

JPA

JPA

JPA

JPA

JPA

3、简单实例

(1)目录结构

JPA

(2)persistence.xml

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 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_1.xsd">

  3. <persistence-unit name="JPA01" transaction-type="RESOURCE_LOCAL">

  4. <class>cn.hwd.jpa.entity.Employee</class>

  5. <properties>

  6. <property name="javax.persistence.jdbc.url"

  7. value="jdbc:mysql://localhost:3306/hwd"/>

  8. <property name="javax.persistence.jdbc.user" value="root"/>

  9. <property name="javax.persistence.jdbc.password" value="mysql"/>

  10. <property name="javax.persistence.jdbc.driver"

  11. value="com.mysql.jdbc.Driver"/>

  12. <property name="eclipselink.logging.level" value="FINE"/>

  13. <property name="eclipselink.ddl-generation"

  14. value="create-tables"/>

  15. </properties>

  16. </persistence-unit>

  17. </persistence>

 

(3)Employee.java

 

 
  1. package cn.hwd.jpa.entity;

  2.  
  3. import javax.persistence.Entity;

  4. import javax.persistence.GeneratedValue;

  5. import javax.persistence.GenerationType;

  6. import javax.persistence.Id;

  7. import javax.persistence.Table;

  8.  
  9. @Entity

  10. @Table

  11. public class Employee {

  12.  
  13. @Id

  14. @GeneratedValue(strategy= GenerationType.AUTO)

  15. private int id;

  16. private String name;

  17. private double salary;

  18. public int getId() {

  19. return id;

  20. }

  21. public void setId(int id) {

  22. this.id = id;

  23. }

  24. public String getName() {

  25. return name;

  26. }

  27. public void setName(String name) {

  28. this.name = name;

  29. }

  30. public double getSalary() {

  31. return salary;

  32. }

  33. public void setSalary(double salary) {

  34. this.salary = salary;

  35. }

  36. public Employee() {

  37. super();

  38. // TODO Auto-generated constructor stub

  39. }

  40. public Employee(int id, String name, double salary) {

  41. super();

  42. this.id = id;

  43. this.name = name;

  44. this.salary = salary;

  45. }

  46. @Override

  47. public String toString() {

  48. return "Employee [id=" + id + ", name=" + name + ", salary=" + salary

  49. + "]";

  50. }

  51. }

 

(4)EmployeeServiceTest.java

 

 
  1. package cn.hwd.jpa.test;

  2.  
  3. import javax.persistence.EntityManager;

  4. import javax.persistence.EntityManagerFactory;

  5. import javax.persistence.Persistence;

  6.  
  7. import org.junit.Test;

  8.  
  9. import cn.hwd.jpa.entity.Employee;

  10.  
  11. public class EmployeeServiceTest {

  12.  
  13. @Test

  14. public void createEmployee() {

  15. EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");

  16. EntityManager entitymanager = emfactory.createEntityManager();

  17. entitymanager.getTransaction().begin();

  18.  
  19. Employee employee = new Employee();

  20. employee.setId(1);

  21. employee.setName("Jerry");

  22. employee.setSalary(6999);

  23. entitymanager.persist(employee);

  24. entitymanager.getTransaction().commit();

  25.  
  26. entitymanager.close();

  27. emfactory.close();

  28. }

  29.  
  30. @Test

  31. public void deleteEmployee() {

  32. EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");

  33. EntityManager entitymanager = emfactory.createEntityManager();

  34. entitymanager.getTransaction().begin();

  35.  
  36. Employee employee=entitymanager.find(Employee.class, 1);

  37. entitymanager.remove(employee);

  38. entitymanager.getTransaction().commit();

  39.  
  40. entitymanager.close();

  41. emfactory.close();

  42. }

  43.  
  44. @Test

  45. public void findEmployee() {

  46. EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");

  47. EntityManager entitymanager = emfactory.createEntityManager();

  48.  
  49. Employee employee=entitymanager.find(Employee.class, 1);

  50. System.out.println(employee);

  51. }

  52.  
  53. @Test

  54. public void updateEmployee() {

  55. EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");

  56. EntityManager entitymanager = emfactory.createEntityManager();

  57. entitymanager.getTransaction().begin();

  58.  
  59. Employee employee=entitymanager.find(Employee.class, 1);

  60. //before update

  61. System.out.println(employee);

  62. employee.setSalary(7200);

  63. entitymanager.getTransaction().commit();

  64. //after update

  65. System.out.println(employee);

  66.  
  67. entitymanager.close();

  68. emfactory.close();

  69. }

  70.  
  71.