Hibernate执行原生态SQL语句通用方法
????? 最近在给系统(原系统是Hibernate做的持久层)加一些统计方面的功能,一般用Hihbernate都是用DAO类继承org.springframework.orm.hibernate.support.HibernateDaoSupport类的getHibernateTemplate()方法来获取链接执行HQL语句。可是有时(如做一些统计功能时)一些比较复杂的SQL在转换成HQL比较麻烦时就希望Hibernate能直接SQL(不想在系统外再去加一个JDBC拉链)。
注:对参数cls(VO对象)的要求:cls对象的setter方法名get后的字母全大写(如:setMAXACCEPTDATE)
????
conn=this.getSession().connection();stm=conn.createStatement();rs=stm.executeQuery(sql);
也能获取jdbc链接,目前还没测出
conn=this.getHibernateTemplate().getSessionFactory().openSession().connection();
这个方法可以用,但已经过时了。
另外,这样做可以绕过hibernate框架,提高性能。
但脱离框架的写法,不符合框架模式,用了框架一般是基于框架思想的。
但在提高性能的模块可以绕过hibernate框架,这个想法很早就有人想到了的。。。
楼主能想到,那也是不错的。 16 楼 fengfeng925 2010-05-28 楼主这是jdbc吧,没看出来跟hibernate没什么关系吧。