Hibernate 与 Spring的JDBCTemplate,效率分别怎样,那个高一些
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 与 Spring的JDBCTemplate,效率分别怎样,那个高一些相关的知识,希望对你有一定的参考价值。
现在许多项目都采用hibernateTemplate和JDBCTemplate混用的方式HibernateTemplate一般是为了加快开发效率,还有就是使用Hibernate的时候,更简洁,更便利,而统一的声明事务,又让本来就已经很简洁的Hibernate对事务的处理,大大简化
但任何事务都有两面性,在带来大量便捷的同时,Hibernate也给我们留下了一点小小的遗憾,比如众所周知的,在处理大批量数据查询的时候,Hibernate的查询效率,是不尽人意的,有人做过测试,在高并发查询的时候,hibernate的查询效率,仅仅相当于使用jdbc效率7成左右,这对于对速度有着很高要求的互联网应用来说,不能不说是悲剧。
Hibernate在做批量操作时,效率不是很理想。所以现在采用JDBCTemplate和Hibernate混用,这时有几个注意事项.
1.如果采用JDBCTemplate的部分只涉及到查询,则可以使用Hibernate的应用缓存,即二级缓存。
2.如果采用JDBCTemplate的部分涉及到对数据库的更新操作,即增,删,改.则不能开启Hibernate的二级缓存,如果系统有缓存的需要,我觉得可以自己在逻辑层实现缓存.Java的缓存方案还是很多的。
3.在使用Spring做为容器的系统中,混用JDBCTemplate和Hibernate,事务管理请统一使用HibernateTransactionManager,前提是JDBCTemplate和Hibernate共用一个DataSource. 参考技术A 数据量大的情况下Spring的JDBCTemplate效率高很多
spring 学习之三(spring 与hibernate, struts2整合)
spring 学习之三(spring 与hibernate, struts2整合)
如果不会struts环境搭建的可以参考《Strust2学习之一(struts2 环境搭建)》
如果不会spring和 hibernate整合的可以参考《 Spring 学习之二(Spring 和 hibernate 整合) 》
这里就直接开始讲解spring 与struts2的整合:
第一步:
在web.xml中加入:
<!-- 在web容器中实例化spring容器, -->
<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 对Spring容器进行实例化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<bean id="studentDAO" class="com.wfg.dao.test.StudentDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="studentAction" class="com.wfg.action.test.StudentAction">
<property name="studentDAO" ref="studentDAO"/>
</bean>
现在就可以在jsp中用
<a href="$pageContext.request.contextPath /studentAction.action">student test </a> 进行访问测试
当然studentaction中的studentdao不需要在new了此时
public class StudentAction
private StudentDAO studentDAO;
public StudentDAO getStudentDAO()
return studentDAO;
public void setStudentDAO(StudentDAO studentDAO)
this.studentDAO = studentDAO;
public String execute()
System.out.println(studentDAO);
//List list = studentDAO.findAll();
//System.out.println(list);
return "dd";
这里就直接开始讲解
以上是关于Hibernate 与 Spring的JDBCTemplate,效率分别怎样,那个高一些的主要内容,如果未能解决你的问题,请参考以下文章