HibernateTemplate的使用】的更多相关文章

用get方法查询:      return this.getHibernateTemplate().get(Product.class, pid); 出现错误为:id to load is required for loading···           很多人说是数据库有字段设置了not null,所以在更新数据的时候由于有些字段是null,所以报错.仔细查看了数据库,并没有not null的设置.其实原因出在get(Product.class,pid)这个方法上.     因为参数id在D…
今日在写GenericDao时,发现了一个异常,内容如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in class path resource [spring.common.xml]: Invocation of init method failed; nested exception is java.lang.Ille…
java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.facto…
1:get/load存取单条数据 public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get(Teacher.class, id); } public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.load(Teacher.class, id); } 2:find/iterate查询操作 p…
这种情况就是在通过spring配置hibernate4的时候(注意,这里是hibernate4不是hibernate3,hibernate3的),使用的是HibernateDaoSupport的这种方式: public class BaseDao extends HibernateDaoSupport{ ***** } 类似这种方式,然后在applicationContext.xml配置为: *** <!-- 配置 SessionFactory --> <bean id="se…
HibernateTemplate HibernateTemplate是spring提供的一个就hibernate访问持久层技术而言.支持Dao组件的一个工具.HibernateTemplate提供持久层访问模板,应用HibernateTemplate无须实现特定的接口,它只需要提供一个sessionFactory的引用就可以执行持久化操作. 该模板无需打开session及关闭Session.它只要获得SessionFactory的引用,就可以打开Session,并在持久化访问结束后关闭Sess…
今天使用ssh框架搭建的项目,进行查询和保存操作,使用的是 public Collection<T> getAllEntry() { return this.hibernateTemplate.find("from "+this.classt.getName()); } public void saveEntry(T t) { this.hibernateTemplate.save(t); } 以前封装的代码也是这样,但是今天怎么弄,都是有问题 当执行上面的hibernat…
今天在学习Spring框架的时候,突然发现了这个类----HibernateTemplate,这个类与Session一开始认为是差不多的,这个HibernateTemplate类对象拥有Session的同样的方法,也可以进行相应的CRUD操作,但是有一点要注意:Session不是Spring封装的,就是说,涉及到事务管理,数据库连接关闭等操作的时候,用Session对象的话,需要显示调用Session的相关的方法:而使用HibernateTemplate这个类对象就无需这么去做,他不需要进行现实…
spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页 /** * 使用hql 语句进行操作 * @param hql * @param offset * @param length * @return List */ public List getListForPage(final Str…
如下所示只能执行非Select语句: public static void executeSQL(HibernateTemplate hibernateTemplate, String sql) { final String tempsql = sql; hibernateTemplate.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException…
/**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final String sql){        List list = hibernateTemplate.executeFind(new HibernateCallback() {            public Object doInHibernate(Session session) throws Hib…
1:get/load存取单条数据 public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get(Teacher.class, id); } public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.load(Teacher.class, id); } 2:find/iterate查询操作 p…
在接触HibernateTemplate之前,我们知道,在对数据库进行CRUD操作之前,需要开启session.transaction等等.在hibernate学习过程中,我们知道了,得到session之前,需要先得到SessionFactory,进而从SessionFactory里面openSession(),或者getCurrentSession(),接着开启一transaction,然后进行对数据库的操作,在操作结束后,提交事务,关闭session.当然如果session是通过getCur…
hibernateTemplate的常用方法: Ø  void delete(Object entity):删除指定持久化实例 Ø  deleteAll(Collection entities):删除集合内全部持久化类实例 Ø  find(String queryString):根据HQL查询字符串来返回实例集合 Ø  findByNamedQuery(String queryName):根据命名查询返回实例集合 Ø  get(Class entityClass, Serializable id…
HibernateTemplate类属于spring框架中的类 :org.springframework.orm.hibernate3.HibernateTemplate HibernateTemplate类目前Hibernate4不支持此类,只支持到Hibernate3,而且在SH整合过程中,如果DaoImpl采用Hibernate实现方法,如果采用Hibernate原声的SessionFactory,即使不采用Spring,原声的SessionFaction同样可以使用,将有利于Dao是可以…
引入别人的项目发现利用HibernateTemplate的load的方法报错了.错误提示为: The method load(Class, Serializable) in the type HibernateTemplate is not applicable for the arguments (Class, int) 意思为load方法的第二个参数是实现Serializable接口的对象,int类型不符合.但jdk自动装箱,int会自转换为Integer,而Integer是实现了Seria…
Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.properties文件. 第一种方法: 在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下: /*** * hibernateTemplate的转配模式 */ public class CustomerDaoImpl implem…
hibernateTemplate的load方法采用延迟加载,所以应当注意. 如果配置不当,采用此方法获取对象,往往会出现异常: javax.servlet.ServletException: org.hibernate.LazyInitializationException: could not initialize proxy - no Session 出现此异常一般是因为session已关闭,无法获取对象. 测试代码: 以下是部门的实现类DeptDaoImpl的一个方法——通过部门id获取…
一.HibernateTemplate与Spring aop简介 参见http://bbs.csdn.net/topics/340207475中网友blueram的发言.(感谢blueram) 二.在网友blueram有一句话是本文讲述的主题: “更优秀的 Session 管理机制. Spring 提供"每事务一次 Session" 的机制,该机制能大大提高了系统性能,而且 Spring 对 Session 的管理是透明的,无须在代码中操作 Session.”——举例说明: Hiber…
概述 模板方法模式是GOF设计模式中很典型的设计模式,其意图是由抽象父类控制顶级逻辑,并把基本操作的实现推迟到子类去实现,这是通过继承的手段来达到对象的复用.Spring模板方法模式实际是模板方法模式和回调模式的结合,Spring几乎所有的外接扩展都采用这种模式,如JNDI,JMS,JCA的 CCI,JDBC,ORM中的Hiberate3.jdo.Toplink等扩展都采用模板方法模式来扩展. 经典的模板方法设计模式 开闭原则是指一个软件实体应该对扩展开放,对修改关闭.先制定一个顶级逻辑框架,而…
项目源代码中出现例如以下代码: HibernateTemplate ht =-- List<Object[]> tempList = ht.find(String querystring); 查看api发现HibernateTemplate的find(String querystring)方法返回的是一个List<Object>对象,当时就比較纳闷了.难道Object对象能强转为Object数组?当然不能.那是为什么呢?find方法返回的list本质上就是List<Objec…
HibernateTemplate常用方法 (本文章内容相当于转载自:http://www.tuicool.com/articles/fU7FV3,只是整理了一下内容结构和修改了部分内容,方便阅读) 一.获取HibernateTemplate对象 HibernateTemplate hibernateTemplate=HibernateTemplate() ;   //当然还有很多种其他的获取方式 下面的例子都是用hibernateTemplate对象 二.HibernateTemplate常用…
hibernate的实体都是存储在缓存中的,所以你会发现有的时候当你创建出两个主键相通的实体的时候会报错.正常情况是当你调用save方法的时候,这个实体对象未必已经保存到数据库了,调用close方法的时候,对象才真正保存如数据库.当你调用flush方法的时候是强制将对象保存到数据库. 举例如下: Hncitem05 hh = this.hibernateTemplate.get(Hncitem05.class, h.getSno()); hh.setSname(h.getSname()); hh…
private HibernateTemplate hibernateTemplate; 使用HbernateTemplate HibernateTemplate提供持久层访问模板化,使用HibernateTemplate无须实现特定接口,它只需要提供一个 SessionFactory的引用,就可执行持久化操作.SessionFactoyr对象可通过构造参数传入,或通过设值方式传入.如下: //获取Spring上下文 ApplicationContext ctx = new FileSystem…
Spring HibernateTemplate的使用 2008-03-25 11:38 2020人阅读 评论(0) 收藏 举报 springbeanhibernatesessiondaoclass 1.在web.xml中添加监听器解析applicationContext.xml文件获取Spring应用程序上下文 <listener>   <listener-class>org.springframework.web.context.ContextLoaderListener<…
Spring整合Hibernate后,为Hibernate的DAO提供了两个工具类:HibernateTemplate和HibernateDaoSupport HibernateTemplateHibernateTemplate是Spring提供的一个就Hibernate访问持久层技术而言.支持Dao组件的一个工具.HibernateTemplate提供持久层访问模板,应用HibernateTemplate无须实现特定的接口,它只需要提供一个sessionFactory的引用就可以执行持久化操作…
HibernateTemplate 提供非常多的常用方法来完成基本的操作,比如通常的增加.删除.修改.查询等操作,Spring2.0更增加对命名SQL查询的支持,也增加对分页的支 持.大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作.下面是HibernateTemplate的常用方法简 介:      void delete(Object entity):删除指定持久化实例 deleteAll(Collection entities):删除集合内全部持久化类…
在applicationContext.xml中有如下配置: <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">    <property name="sessionFactory">       <ref bean="sessionFactory"/>    &…
在 Spring+Hibernate的集成环境里,如果DAO直接使用HibernateDaoSupport的getSession()方法获取 session进行数据操作而没有显式地关闭该session,那么程序表现为:每个session会打开一个connection,并且 connection会一直保持(因为没有显式地close).如果程序使用了c3p0连接池,则因为c3p0连接池默认最大连接数是15,程序会表现为 当打开第15个连接时,程序处于停滞状态,等待从连接池获取新的连接. 在同样条件下…
首先遇到的问题就是HibernateDaoSupport引起的,程序中所有的DAO都继承自HibernateDaoSupport,而HibernateDaoSupport需要注入sessionfactory或者hibernateTemplate,所以出现"sessionFactory " or "hibernateTemplate " is required异常,但是在spring配置文件中加入sessionFactory的bean配置以后,仍然出现异常.后来看了网…