以前开发的时候都是用STRUTS+HIBERNATE,获得数据库的SESSION都是通过HIBERNATESESSIONFACTORY,而且在SESSION里写SQL语句,HQL语句都很方便。
现在在学SPRING,SPRING管理HIBERNATE的时候都是继承了HibernateDaoSupport,通过getHibernateTemplate来完成数据库的操作,但是在getHibernateTemplate里却不能写SQL语句,但是实际开发中很多时候都是写SQL,而不是简单的HQL。
请问有SSH实际开发经验的,是不是很多时候还要用SPRING+JDBC呀?

解决方案 »

  1.   

    SPRING管理HIBERNATE 也能得到session呀
      

  2.   

    如果是复杂的sql,可以考虑使用mybatis,而且spring和mybatis整合的不错
      

  3.   

    如果还是通过HIBERNATESESSIONFACTORY获得SESSION的话,那么就失去通过SRPING管理HIBERNATE事务的意义了。
      

  4.   

    我也很久没用过hibernate了,只记得有这样的回调函数来实现比较复杂一些的HQL语句,给你个链接你去看看就知道了http://tudusi.iteye.com/blog/1514856
      

  5.   

    通过getHibernateTemplate获取到的HibernateTemplate也支持HQL操作数据库public Collection getVets() throws DataAccessException {
    return getHibernateTemplate().
    find(hql);
    }
    或者利用回调函数自己定义如何进行数据库操作
      List list = getHibernateTemplate().executeFind ( new HibernateCallback ( ) {
                                public Object doInHibernate ( Session session ) throws HibernateException, SQLException {
                                                //在这里自定义数据库操作
                                                Query query = session.createQuery ( hql ) ;
                                                query.setFirstResult ( offset ) ;
                                                query.setMaxResults ( length ) ;
                                                List list = query.list ( ) ;
                                                return list ;
                               }
                   }) ;
      

  6.   

    hibernate + spring +jdbc,使用HQL