spring的jdbctemplate与hibernate

最近在看spring,发现jdbctemplate也能很好地对数据库CRUD,那么产生了如摘要的疑问,在此记录一下,红色字体为重点。

1.JDBCTemplate是Spring对jdbc的封装,但sql还是得自己写,一旦要写sql,则会增加灵活和复杂性,当然也不利于跨数据库(毕竟每个数据库的实现产品的sql也不竟相同)。
若使用hibernate则不用关心底层的数据库是哪个数据库,在编程方面,也更对象化了,比如
save(Object obj),我们操作的都是对象。hibernate也利用了缓存产生实现与数据库的读取操作,提高性能太多了。

2. 现在许多项目都采用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.


在此我只是对资料的汇合,如果大家有什么新的看法,希望能通过留言来交流,谢谢大家的指导。


参考资料:

1.http://bbs.csdn.net/topics/330256418

2.http://zhidao.baidu.com/link?url=UMlaR3oPG9mtIEh748IyUlZhWILd2RIA9AxVPbd_BeUuL-cF0184pQQwzm_AimEYS6y5og38skL4xWHoX11bDq

转载于:https://my.oschina.net/hosee/blog/411341

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值