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.
spring中提供了 一个spring-jdbc,就是对jdbc的使用简化和扩展,增加一些开发效率。如果要了解更详细,可以搜索spring-jdbc使用详情。具体spring-jdbc使用前,要导入相应的jar包,在applicationContext.xml中配置dataSource和jdbcTemplate就可以使用它了。
添删查改 *** 作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void add(User user){
jdbcTemplate.update("INSERT INTO USER VALUES('"
+ user.getId() + "', '"
+ user.getName() + "', '"
+ user.getSex() + "', '"
+ user.getAge() + "')")
}
public void edit(User user){
jdbcTemplate.update("UPDATE USER SET name = ? WHERE user_id = ?", new Object[] {name, id})
}
public int queryCount(){
int count = jdbcTemplate.queryForInt("SELECT COUNT(*) FROM USER")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)