JPA配置简单生成表

来源:互联网 发布:fastjsont转java对象 编辑:程序博客网 时间:2024/06/06 18:16

搞了了一整天的JPA配置简单生成表,终于让我搞成功了,呵呵!(jar包可以去下载)

首先META-INF 文件夹下建一个persistence.xml文件,文件里的具体内容大致如下:

 

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

<persistence version="1.0" 

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 ">

<persistence-unit name="itcast" transaction-type="RESOURCE_LOCAL">

<properties>

<!-- Database connection settings -->

<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

<property name="hibernate.connection.url" value="jdbc:sqlserver://localhost:1433;DatabaseName=JPA_DB"/>

<property name="hibernate.connection.username" value="sa"/>

<property name="hibernate.connection.password" value="sa."/>

   <!-- SQL dialect -->

<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>

<!-- Update the database schema on startup -->
                        <!--此处的value有四个值   validate  加载hibernate时,验证创建数据库表结构 create   每次加载hibernate,重新创建数据库表结构  create-drop   加载hibernate时创建,退出时删除表结构   update 加载hibernate自动更新数据库结构 其实这个参数的作用主要用于:自动创建|更新|验证数据库表结构。如果没有此方面的需求建议set value="none".-->

<property name="hibernate.hbm2ddl.auto" value="update"/>

<property name="show_sql" value="true"/>

<property name="format_sql" value="true"/>

</properties>

</persistence-unit>

</persistence>

然后自己建个实体类:

package cn.itcast.bean;

 

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

 

@Entity

public class Person {

private Integer id;

private String name;

/**

* 实体标识符

* GenerationType 枚举值

* 1.AUTO  2.IDENTITY(数据库自增)  3.SEQUENCE(序列) 4.TABLE(表)  5.class

* IDENTITY SEQUENCE 对所有数据库并不通用 TABLE是通用的 

* 当不知道是哪种类型的数据库 用AUTO 根据hibernate所使用的数据库方言

* 可以将策略省滤(strategy=GenerationType.IDENTITY)

*/

@Id @GeneratedValue

public Integer getId() {

return id;

}

 

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

 

public void setName(String name) {

this.name = name;

}

 

public Person(){}

public Person(String name) {

this.name = name;

}

}

最后就是一个junit 测试类了:

package junit.test;

 

 

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.EntityTransaction;

import javax.persistence.Persistence;

 

import org.junit.BeforeClass;

import org.junit.Test;

 

import cn.itcast.bean.Person;

 

public class PersonTest {

 

@BeforeClass

public static void setUpBeforeClass() throws Exception {

}

@Test public void save(){

//1.创建EntityManagerFactory对象(此时表就创建好)

EntityManagerFactory factory =Persistence.createEntityManagerFactory("itcast");

//2.创建实体管理器

EntityManager em = factory.createEntityManager();

//3.开始事务

em.getTransaction().begin();

//4.保存(持久化对象)

em.persist(new Person("jack"));

//5.提交事务

em.getTransaction().commit();

em.close();

factory.close();

}

}

终于搞定了,呵呵,一定会开心的!!!

 

原创粉丝点击