hibernate4实现的JPA2.0规范的集成

1.JPA概述

   JPA(Java Persistence API),其实它就是一种规范(Java持久化接口),而不是什么开发工具,这里用到的hibernate4恰好实现了这一规范。JPA规范的好处就是不依赖于某一个ORM框架(如hibernate)

官方阐述的一些JPA的优势:1 标准化 ;2 对容器级特性的支持;3 简单易用,集成方便 4 可以媲美JDBC的查询能力 5 支持OO的高级特性

2.hibernate4.1.1下载

下载链接:http://ncu.dl.sourceforge.net/project/hibernate/hibernate4/4.1.1.Final/hibernate-release-4.1.1.Final.zip

3.JPA所需的最小jar包配置

 /lib/required/下面所有的jar包是必须的

其次,/lib/jpa/hibernate-entitymanager-4.1.1.Final.jar也拷贝到项目中

项目的创建,以及目录如下:

4.编写persistence.xml文件

可以拷贝已有的xml文件,这里实现的是JPA2.0规范

<?xml version="1.0" encoding="UTF-8"?>
<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_2_0.xsd"
             version="2.0">
	<persistence-unit name="zjMusicJpa" transaction-type="RESOURCE_LOCAL">
		<properties>
			<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect" />
			<property name="javax.persistence.validation.mode" value="none"/> <!-- 这句话不加出现:javax.persistence.PersistenceException -->
			<property name="hibernate.connection.url" value="jdbc:sqlserver://localhost:1992;databaseName=DB_ZJMusic;instance=SQLSERVER08R2" />
			<property name="hibernate.connection.username" value="sa" />
			<property name="hibernate.connection.password" value="Zzj19920228" />
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
		</properties>
	</persistence-unit>
</persistence>

刚开始,由于参考其它博客(hibernate版本是3.x的,同时jpa是1.0)出现了javax.persistence.PersistenceException异常,原因是javax.persistence.validation.mode默认是auto的,如果不设置为none的话,会到类路径下查找bean-validation**.jar包,如果没有此包,则会出现上述异常

       如果persistence.xml配置没有问题的话,xml文件的图标是会变的,不同于一般的xml文件,注意观察

5.编写实体类

@Entity
public class JMusic {

	@Column(name="jmusicid")
	@Id @GeneratedValue
	private Integer id;//编号
	
	@Column
	private String musicname;
	
	@Column
	private String singer;//歌手
	
	@Column
	private String musicurl;//歌曲网络地址
	
	@Column
	@Temporal(TemporalType.DATE)
	private Date distributeDate;//发布时间
	
	@Column
	private String album;//所属专辑名

这里自己加上get,set方法

6.JUnit测试

public class JpaTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test
	public void createTable(){
		//验证表
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("zjMusicJpa");
		factory.close();
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值