《spring2.0技术手册》读书笔记九-spring与hibernate整合DAO的书写,HibernateTemplate解析
2011-07-13 11:46
369 查看
在spring与hibernate结合以后,可以使用spring提供的org.springframework.orm.hibernate3.HibernateTemplate,或org.springframework.orm.hibernate3.support.HibernateDaoSupport来实现DAO类。
利用HibernateTemplate
继承HibernateDaoSupport
继承HibernateDaoSupport的好处是可以省去一些管理SessionFactory、HibernateTemplate资源的工作,只要注入SessionFactory实例即可。Spring会采用“每次事务打开一个Session”的策略,自动提高DB访问性能。
补:纵观全局,HibernateTemplate对于DAO的简便实现至关重要,介绍方法如下
构造方法:HibernateTemplate()、HibernateTemplate(SessionFactory)、HibernateTemplate(SessionFactory,boolean allCreate)。
操作方法:void delete(Object entity):删除指定持久化类实例;void deleteAll(Collection entities):删除集合内部的全部持久化类实例;
List find(String queryString)、List find(String queryString, Object value)、List find(final String queryString, final Object... values):查询。value为参数值,根据sql语句中的参数位置(0,1,2...)确定;
List findByNamedParam(String queryString, String paramName, Object value)、List findByNamedParam(final String queryString, final String[] paramNames, final Object[] values):根据参数名设置参数,进行查询;
Object get(String entityName, Serializable id):根据主键加载特定持久化类的实例;
Serializable save(final Object entity):保存新的实例。void update(Object entity):更新实例,要求entity是持久化状态。void saveOrUpdate(final Object entity) :根据实例状态,选择保存或更新;
void setMaxResults(int maxResults):设置最大行数,用于分页的大小。
利用HibernateTemplate
import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; public class UserDAO implements IUserDAO{ private HibernateTemplate hibernateTemplate; public void setSessionFactory(SessionFactory sessionFactory){ hibernateTemplate=new HibernateTemplate(sessionFactory); } public void insert(User user){ hibernateTemplate.save(user); } public User find(Integer id){ User user=(User)hibernateTemplate.get(User.class, id); return user; } }
继承HibernateDaoSupport
import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class UserDAO extends HibernateDaoSupport implements IUserDAO{ public void insert(User user){ getHibernateTemplate().save(user); } public User find(Integer id){ User user=(User)getHibernateTemplate().get(User.class, id); return user; } }
继承HibernateDaoSupport的好处是可以省去一些管理SessionFactory、HibernateTemplate资源的工作,只要注入SessionFactory实例即可。Spring会采用“每次事务打开一个Session”的策略,自动提高DB访问性能。
补:纵观全局,HibernateTemplate对于DAO的简便实现至关重要,介绍方法如下
构造方法:HibernateTemplate()、HibernateTemplate(SessionFactory)、HibernateTemplate(SessionFactory,boolean allCreate)。
操作方法:void delete(Object entity):删除指定持久化类实例;void deleteAll(Collection entities):删除集合内部的全部持久化类实例;
List find(String queryString)、List find(String queryString, Object value)、List find(final String queryString, final Object... values):查询。value为参数值,根据sql语句中的参数位置(0,1,2...)确定;
List findByNamedParam(String queryString, String paramName, Object value)、List findByNamedParam(final String queryString, final String[] paramNames, final Object[] values):根据参数名设置参数,进行查询;
Object get(String entityName, Serializable id):根据主键加载特定持久化类的实例;
Serializable save(final Object entity):保存新的实例。void update(Object entity):更新实例,要求entity是持久化状态。void saveOrUpdate(final Object entity) :根据实例状态,选择保存或更新;
void setMaxResults(int maxResults):设置最大行数,用于分页的大小。
相关文章推荐
- 《spring2.0技术手册》读书笔记九-spring与hibernate整合DAO的书写,HibernateTemplate解析
- 《Spring2.0技术手册》读书笔记八-Spring与Hibernate整合
- 《Spring2.0技术手册》读书笔记八-Spring与Hibernate整合
- spring入门(12)-spring与hibernate整合完成增删改查的操作(继承HibernateDaoSupport调用hibernateTemplate类)
- 虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27
- Spring与Hibernate整合之通用Dao的实现
- spring与hibernate整合之:继承HibernateDAOSupport方式+理解xml与AutoWired、Resource的区别
- Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27
- Struts2、Hibernate、Spring整合的泛型DAO,以及通用的分页技术
- 8.7.1: Spring整合Hibernate---Spring提供的DAO支持
- Spring整合hibernate(3)之基于HibernateDaoSupport的整合
- spring与hibernate整合之:继承HibernateDAOSupport方式+理解xml与AutoWired、Resource的区别
- spring2.5整合hibernate3.3的泛型Dao并加入spring jdbc的支持
- Struts2、Hibernate、Spring整合的泛型DAO,以及通用的分页技术
- 继承HibernateDaoSupport实现DAO(spring整合hibernate)
- 继承HibernateDaoSupport实现DAO(spring整合hibernate)
- spring+hibernate整合详细步骤解析
- Spring【整合DAO与Hibernate】
- 自己动手写代码,整合Spring和Hibernate(三)之DAOSupport和DAOTemplate
- spring2.5整合hibernate3.3的泛型Dao并加入spring jdbc的支持