HibernateDaoSupport
来源:互联网 发布:网络反侦查 编辑:程序博客网 时间:2024/06/04 23:20
Spring的Hibernate ORM 框架带来了方便的HibernateDaoSupport类,你的DAO类可以继承它:
public class StudentDaoHibernate extends HibernateDaoSupport implements StudentDao{
.................
}
如果你选择这种设计,就需要动态注入SessionFactory而HibernateDaoSupport包含这个属性.这个类提供了一个方便的方法getHibernateTemplate(); 就能得到HibernateTemplate的一个实例.它也有getSession()和releaseSession,以便于你应为某些原因而不使用HibernateTempate的情况下执行Hibernate操作。
HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交。在JDBC中一个Connection对象使用一个事务,那么在Hibernate中一个事务肯定要关联一个SessionFactory了,然而这个SessionFactory却没有在DAO中体现。其实主要的原因是HibernateDaoSupport类已经默默地做了封装的工作,它用一个setSessionFactory方法将SessionFactory进行注入,所以继承自HibernateDaoSupport类的DAO都会具有SessionFactory的属性,从而可以通过SessionFactory创建Session实例操作数据库。
在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
由于Hibernate集成了JDBC,所以在访问数据库时,与直接使用JDBC访问数据库相比,Hibernate在连接、访问数据库时的代码减少了很大一大半。但由此而来也相应必须增加访问Hibernate配置文件和SessionFactory、Session的打开、关闭的代码。为了解决以上相同代码出现的复用问题,Hibernate对此又进行了再一次封装,于是,幸运地出现了HibernateDaoSupport。因此,在使用HibernateDaoSupport模板对数据库访问时,更加方便、简单,特别是进行简单的增删改查。
下面是我自己写的一点代码参考:
/**
* @author wifygoo
* 对企业信息的简单增删改查。
*/
public class EnterpriseDaoImpl extends HibernateDaoSupport implements
EnterpriseDao {
/**
* @param Enterprise
* 删除某条企业信息。
*/
public void del(Enterprise enterprise) {
this.getHibernateTemplate().delete(enterprise);
}
/**
* @return 所有的企业信息。
* 查询所有的企业信息。
*/
@SuppressWarnings("unchecked")
public List<Enterprise> findAllEnterprises() {
String hql = "from Enterprise enterprise";
return this.getHibernateTemplate().find(hql);
}
/**
* @param Integer,企业编号。
* @return 某个企业信息。
* 通过企业编号查询企业信息。
*/
public Enterprise findEnterpriseById(Integer id) {
return (Enterprise) this.getHibernateTemplate().load(Enterprise.class, id);
}
/**
* @param Enterprise
* 添加企业信息。
*/
public void save(Enterprise enterprise) {
this.getHibernateTemplate().save(enterprise);
}
/**
* @param Enterprise
* 修改企业信息。
*/
public void update(Enterprise enterprise) {
this.getHibernateTemplate().update(enterprise);
}
}
0 0
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaoSupport
- HibernateDaosupport
- HibernateDaoSupport.java
- HibernateDaoSupport 简介
- spring HibernateDaoSupport
- HibernateDaoSupport详解
- Error:java.io.FileNotFoundException: 系统找不到指定的文件.
- 关于linux socket 编程 端口复用的理解
- 图形化打印二叉树
- java 数据结构 常见的排序算法
- leetcode:Count of Smaller Numbers After Self
- HibernateDaoSupport
- 动态输入日期与时间(DatePicker与TimePicker应用)
- 重构(改善既有代码的设计)--读书笔记2
- 第一个单片机程序
- N皇后问题
- leetcode之atoi() in java
- react native 样式初学~(一)
- HLS视频直播
- leetcode:Binary Tree Postorder Traversal