JPA学习记录二(搭建一个JPA+hibernate实例)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 05:53   44   0

一:首先开发JPA依赖的jar文件

二:JPA的配置文件

JPA规范要求在类路径的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">
   <persistence-unit name="persistUnitName" transaction-type="RESOURCE_LOCAL">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />  
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />  
            <property name="hibernate.connection.username" value="root" />  
            <property name="hibernate.connection.password" value="ddd318718664" />  
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=UTF-8" />  
            <property name="hibernate.show_sql" value="true" />  
            <property name="hibernate.hbm2ddl.auto" value="create" />  
      </properties>
   </persistence-unit>
</persistence>

三:创建一个User.class,定义好需要持久化的类

package cn.zl.jpa.domain;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity//是指这个类映射有数据库表 javax.persistence.Entity 才可以移植  
@Table(name="user")//数据表名字
public class User {
 @Id
 @GeneratedValue()//定义id增加策略
 private int id;
 private String name;
 private Date birthday;
 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 Date getBirthday() {
  return birthday;
 }
 public void setBirthday(Date birthday) {
  this.birthday = birthday;
 }
 
}

四:初始化JPA,创建JpaUtil.java


package cn.zl.jpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public final class JpaUtil {

 private static EntityManagerFactory emf;//实例管理工厂

 //初始化emf
 static{
  //persistUnitName 与persistence.xml的persistence-unit name属性一致
  emf=Persistence.createEntityManagerFactory("persistUnitName");
  
 } 
 
 public static EntityManager getEntityManager()
 {
  return emf.createEntityManager();
   
 }
}

五:测试是否正确:建立一个BaseTest.java

package cn.zl.jpa;

import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import cn.zl.jpa.domain.User;


public class BaseTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  User user =new User();
  user.setName("name");
  user.setBirthday(new Date());
  addUser(user);
 }
 
 static void addUser(User user){
  EntityManager em=null;
  EntityTransaction tx=null;
  try{
   em=JpaUtil.getEntityManager();//获取jpa
   tx=em.getTransaction();//获取事务
   tx.begin();//事务开始
   em.persist(user);//执行持久化对象
   tx.commit();//提交
  }finally{
   if(em!=null)
    em.close();
  }
 }


}

运行后:


结束。源码下载:http://download.csdn.NET/detail/u013030488/9835319

包下载:http://download.csdn.net/detail/u013030488/9836680

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP