在hibernate中怎么直接执行SQL语句,而不是用对象去查找
如题,我要象在jdbc中执行sql语句一样,在hibernate中怎么直接写sql语句执行?
我发现在hibernate中都是在对象中查的。
问题点数:20、回复次数:7Top
1 楼mor(天蓝,天蓝)回复于 2004-09-03 13:58:26 得分 2
net.sf.hibernate.Session有一个createQuery(String queryString)方法,返回一个net.sf.hibernate.Query对象,而Query对象好像就是查询的结果集,可以用iterate()来查看结果的。不过我没有具体用过这个方法,只是这两天在学,看到了。Top
2 楼usabcd(9号公路上的3名共军)回复于 2004-09-03 15:53:53 得分 3
我告诉你个死板但管用的办法:
先得到Connection:
Session s = ...
Connection conn = s.connection();
有了Connection你就可以自己折腾了。
Top
3 楼csdnloading(楼顶主人)回复于 2004-09-09 13:13:17 得分 10
Session session = ( (SessionFactoryImpl) factory)
.openSession();
PreparedStatement pstmt = ( (SessionImpl) session)
.getBatcher().prepareStatement(sql);
pstmt.execute();Top
4 楼niyboy(I Love J2EE)回复于 2004-09-09 14:34:25 得分 2
其实和JDBC差不了多少,你可以这样
public Iterator getSomePerson(String name)throws HibernateException
{
String queryString = "select person.personid,person.name,person.email,author.alias from Person as person ,Author as author where person.personid=author.id and person.name = :name " ;
beginTransaction();
Query query = session.createQuery(queryString);
query.setString("name", name);
Iterator it= query.iterate();
return it;
}Top
5 楼xiaohaiz(城里的老土,两眼依然通红!)回复于 2004-09-09 16:22:49 得分 1
估计楼主不是在问HQL...Top
6 楼bon_jovi(西门疯雪)回复于 2004-09-09 23:47:39 得分 2
hibernate本来就是orm的产品,让程序员对object进行持久化操作,这才是oo,楼主明显不是在oo编程。:)Top
7 楼csdnloading(楼顶主人)回复于 2004-09-10 08:39:42 得分 0
Query query = session.createQuery(queryString);
这里的queryString还是HQL不是SQL,
Session session = ( (SessionFactoryImpl) factory)
.openSession();
PreparedStatement pstmt = ( (SessionImpl) session)
.getBatcher().prepareStatement(sql);
pstmt.execute();
这样sql就是SQL语句了。Top




