spring整合JPA(hibernate)以及jdbctemple

来源:互联网 发布:apache 忽略index.php 编辑:程序博客网 时间:2024/06/05 04:24

对于hibernate褒贬不一,不过为了扩展性和快速开发,还是挺适用的。我这边用的框架是strtus2.X Spring2.5 JPA1.0 hibernate 3.2.5

 

hibernate在复杂数据查询的时候,用HQL或者Criteria都不是好的办法,另外对大量数据的插入和删除,性能上也有点问题。这里就直接引用了jdbcTemple。

 

我这边使用的连接池是c3p0,由于JPA对proxool无法直接支持,头疼的要命,要用proxool只能自己写一个filter

 

因为要整合事务和数据源,必须使用datasource.

 

下面的基本的项目部署信息:

 

在jpa的entityManagerFactory中嗲用了persistence.xml,这个文件描述了hibernate的一些特性。ps:这个文件里面本来是空的,因为resin要识别hibernate.dialect,否则无法加载。

 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

这一条是对jpa的注解描述,可以直接识别不用在写一堆xml了

 

重要的是上面这一句,直接对jdbcTemple进行了注入,并且将dataSource直接作为属性。

另外,使用到jdbcTemple的bean也需要单独的一个xml,在web.xml加载的时候,也加载进去。

 

我这里jdbcTemple只做复杂的查询,没有做insert delete update等sql操作。所以在事务里面就把datasource给注释了。

 

如果要使用到jdbcTemple的sq操作级的功能,必须在事务里面添加datasource,并且关闭二级缓存。(JPA1.0还没有支持2级缓存,所以不存在这个问题。) 后期会升级成为JPA2.0,2.0在1.0的基础上有了很大的改进,可以分级考虑(跑题了) :)

 

可以集成jdbcTemple当然也可以集成ibatis,不过有点麻烦,要使用ibatis的一些特性,并且注解的方式也不一样,唯一的办法就是设定一个aop的拦截,对ibatis的Service进行拦截直接操作。

 

ibatis的集成办法,我后期会编辑上传。欢迎各位大虾斧正~

 

 

 

原创粉丝点击