1、JPA
JPA(Java持久性API)是存储业务实体关联的实体的来源。它显示了如何定义一个面向普通Java对象(POJO)作为一个实体,以及如何管理关系实体。
2、安装JPA
(1)创建一个新的JPA项目,首先选择File->New->JPA Project。
(2)输入项目名称JPA01,选择Target runtime jre7如下。
(3)点击下载库(如果没有库)中的用户库部分,在下载库对话框中选择EclipseLink库的最新版本,点击下一步。然后接受许可条款,单击Finish。下载后,选择用户库部分中的下载库,然后单击Finish完成操作。
3、简单实例
(1)目录结构
(2)persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<persistence-unit name="JPA01" transaction-type="RESOURCE_LOCAL">
<class>cn.hwd.jpa.entity.Employee</class>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:mysql://localhost:3306/hwd"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="mysql"/>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.Driver"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.ddl-generation"
value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
(3)Employee.java
package cn.hwd.jpa.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table
public class Employee {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id;
private String name;
private double salary;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Employee() {
super();
// TODO Auto-generated constructor stub
}
public Employee(int id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", salary=" + salary
+ "]";
}
}
(4)EmployeeServiceTest.java
package cn.hwd.jpa.test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.Test;
import cn.hwd.jpa.entity.Employee;
public class EmployeeServiceTest {
@Test
public void createEmployee() {
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");
EntityManager entitymanager = emfactory.createEntityManager();
entitymanager.getTransaction().begin();
Employee employee = new Employee();
employee.setId(1);
employee.setName("Jerry");
employee.setSalary(6999);
entitymanager.persist(employee);
entitymanager.getTransaction().commit();
entitymanager.close();
emfactory.close();
}
@Test
public void deleteEmployee() {
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");
EntityManager entitymanager = emfactory.createEntityManager();
entitymanager.getTransaction().begin();
Employee employee=entitymanager.find(Employee.class, 1);
entitymanager.remove(employee);
entitymanager.getTransaction().commit();
entitymanager.close();
emfactory.close();
}
@Test
public void findEmployee() {
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");
EntityManager entitymanager = emfactory.createEntityManager();
Employee employee=entitymanager.find(Employee.class, 1);
System.out.println(employee);
}
@Test
public void updateEmployee() {
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("JPA01");
EntityManager entitymanager = emfactory.createEntityManager();
entitymanager.getTransaction().begin();
Employee employee=entitymanager.find(Employee.class, 1);
//before update
System.out.println(employee);
employee.setSalary(7200);
entitymanager.getTransaction().commit();
//after update
System.out.println(employee);
entitymanager.close();
emfactory.close();
}
}