第2种比较常用,第一种你的sessionFactory是自己定义的,给HibernateTemplate赋值还需要你自己来实例化,而第二种,是用别人提供的org.springframework.orm.hibernate3.HibernateTemplate这个类里的sessionFactory注入值,第一,这样更简单,第二也符合spring依赖注入的原理,(对象由容器创建)
1,jpa(java persistence api)是sun官方提出的java持久化规范。它为java开发人员提供了一种对象/关系映射工具来管理java应用中的关系数据。,而hibernate是它的一种实现。除了hibernate,还有eclipselink(曾经的toplink),openjpa等可供选择,所以使用jpa的一个好处是,可以更换实现而不必改动太多代码。
2,hibernate作为jpa的一种实现,jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两套注解。hibernate对jpa的支持够足量,在使用hibernate注解建议使用jpa。
spring可以支持多种DAO的框架,是你自己要使用hibernate而已
以下引用百度百科:
JPA 的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。因此开发人员只需使用供应商特有的API来获得JPA规范没有解决但应用程序中需要的功能。尽可能地使用JPA API,但是当需要供应商公开但是规范中没有提供的功能时,则使用供应商特有的API。
Hibernate
JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,应该说无人能出其右。从功能上来说,JPA就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的JPA(Java Persistence API) 兼容认证。
只要熟悉Hibernate或者其他ORM框架,在使用JPA时会发现其实非常容易上手。例如实体对象的状态,在Hibernate有自由、持久、游离三种,JPA里有new,managed,detached,removed,明眼人一看就知道,这些状态都是一一对应的。再如flush方法,都是对应的,而其他的再如说Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了manager,所以从Hibernate到JPA的代价应该是非常小的
同样,JDO,也开始兼容JPA。在ORM的领域中,看来JPA已经是王道,规范就是规范。在各大厂商的支持下,JPA的使用开始变得广泛。
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....