Hibernate 执行原生SQL

来源:互联网 发布:查外文最全的数据库 编辑:程序博客网 时间:2024/05/17 06:18

我们在使用Hibernate的时候,有时由于hql的局限性我们不得不使用SQL,Hibernate不仅支持Hql同时也支持sql。

 我们可以通过HibernateDaoSupport的getSessionFactory()拿到我们需要的Session工厂 也可以通过getHibernateTemplate()获得 然后通过工厂获取一个Session 这里有两种方法。    1.getSessionFactory().openSession();    2.getSessionFactory().getCurrentSession(); 两种方法的区别,第一种直接新创建一个Session,第二种是回去查下如果有就不会新建没有就新建。这种方法需要配置声明式事务。 下面就是执行方法    session.createSQLQuery(sql);    session.createQuery(hql)第一种执行sql语句第二种执行hql语句在执行sql语句的时候我们需要声明下变量类型或者是对象(Hibernate3别的不知)


session.createSQLQuery(sql).addScalar(“ID”,Hibernate.LONG).list()
session.createSQLQuery(sql).addEntity(arg0).list()

上面的是用来声明变量类型
下面的是用来声明对象

当然我们可以拿到Connection等然后完全按照JDBC的方式来实现。

    Connection  conn = session.connection();    PreparedStatement ps = conn.prepareStatement(sql);        ps.setString(1, "argus");        rs = ps.executeQuery();        while (rs.next()) {}
0 0
原创粉丝点击