HibernateTemplate用法
HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:
◇ void delete(Object entity):删除指定持久化实例
◇ deleteAll(Collection entities):删除集合内全部持久化类实例
◇ find(String queryString):根据HQL查询字符串来返回实例集合
◇ findByNamedQuery(String queryName):根据命名查询返回实例集合
◇ get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例
◇ save(Object entity):保存新的实例
◇ saveOrUpdate(Object entity):根据实例状态,选择保存或者更新
◇ update(Object entity):更新实例的状态,要求entity是持久状态
◇ setMaxResults(int maxResults):设置分页的大小
HibernateTemplate与session的区别
使用方法没有多大的区别
我们使用HibernateTemplate,有一个很重要的原因就在于我们不想直接控制事务,不想直接去获取,打开Session,开始一个事务,处理异常,提交一个事务,最后关闭一个SessionHibernateTemplate 是Hibernate操作进行封装,我们只要简单的条用HibernateTemplate 对象,传入hql和参数,就获得查询接口,至于事务的开启,关闭,都交给HibernateTemplate 对象来处理我们自己只专注于业务,不想去作这些重复而繁琐的操作。我们把这些责任全部委托给了 HibernateTemplate,然后使用声明式的配置来实现这样的功能。如果我们通过类似getSession()这样的方法获得了Session,那就意味着我们放弃了上面所说的一切好处。
在使用Spring的时候 DAO类继承了 HibernateDaoSupport 类又因为HibernateDaoSupport 类里面有个属性 hibernateTemplate;所以就可以进行设置注,也就是Spring的一大优点面向切面式编程,进行设置注入,在Tomcat启动的时候由 Tomcat 加载 ApplicationContext.xml,配置文件给 hibernateTemplate赋值,这样的话就实现了,在使用某个对象之前不用给他实例化