JPA学习笔记

JPA全称为Java Persistence API Java持久化APISun公司在Java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。

如图1.3说明了JPA在系统架构中的作用,使用JPA持久化对象,而不是依赖于某一个ORM框架。



一、JPA所要添加的JAR包



二、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();
 }

}



posted @ 2009-08-18 14:52  superGG  阅读(953)  评论(0编辑  收藏  举报