CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  框架、开源

在hibernate中怎么直接执行SQL语句,而不是用对象去查找

楼主winown()2004-09-03 13:53:51 在 Java / 框架、开源 提问

如题,我要象在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

相关问题

  • 问查找的sql语句
  • 用sql语句查找主键?
  • 再问一个查找的sql语句
  • 关于树形查找的SQL语句
  • 查找每类一个的SQL语句?
  • 求查找access2000 的查找sql语句-----------------------急死了!!!!!!!!!!!
  • hibernate如何执行SQL语句?
  • sql语句查找指定条数记录
  • 查找两个表中不匹配的SQL语句
  • 查找相同字段的sql语句怎么写?

关键词

  • 语句
  • hibernate
  • sql
  • 对象
  • pstmt
  • querystring
  • query
  • createquery
  • person
  • session

得分解答快速导航

  • 帖主:winown
  • mor
  • usabcd
  • csdnloading
  • niyboy
  • xiaohaiz
  • bon_jovi

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo