JPA学习笔记
如图1.3说明了JPA在系统架构中的作用,使用JPA持久化对象,而不是依赖于某一个ORM框架。
![](https://images.cnblogs.com/cnblogs_com/supergg/1_3.jpg)
![](https://images.cnblogs.com/cnblogs_com/supergg/need.jpg)
二、META-INF目录下创建persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<!--RESOURCE_LOCAL本地事务-->
<persistence-unit name="itcast" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/hibernate_jpa" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password"
value="admin" />
<!--hibernate.dialect方言-->
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
实体类
package cn.itcase.bean;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "t_person")
public class Person {
private int id;
private String name;
private Date birthday; // 1987-12-10
private Gender gender=Gender.MAN; // 枚举
// EnumType.ORDINAL保存枚举的索引
// EnumType.STRING保存字符串
@Enumerated(EnumType.STRING)
@Column(length = 5, nullable = false)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(length = 10, nullable = false, name = "personName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) {
super();
this.name = name;
}
public Person() {
}
}
测试类
package cn.itcase.test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import junit.framework.TestCase;
import cn.itcase.bean.Person;
public class PersonTest extends TestCase {
public void testSave() {
EntityManagerFactory facoty = Persistence
.createEntityManagerFactory("itcast");
// sessionFactory
EntityManager em = facoty.createEntityManager();
em.getTransaction().begin();
em.persist(new Person("安静"));
em.getTransaction().commit();
em.close();
facoty.close();
}
}