如何实现把HQL的语句转成SQL语句,并且带参数,急需,在线等

dongjiachen 2009-02-24 09:56:36
我们现在做一个项目,以快完工了,语句都是使用HQL的,但现在需要把所执行的HQL语句转化成SQL语句存放到数据库中,当项目运行一个方法,都会把相应SQL取出来,存入库,以便后期在数据库中执行相应操作,这应该怎么去实现
...全文
1176 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangan0301 2009-08-13
  • 打赏
  • 举报
回复
感觉只能一个一个转换了~~
jianchencool 2009-08-13
  • 打赏
  • 举报
回复
有点棘手,一句一句写呗!
blliy117 2009-08-12
  • 打赏
  • 举报
回复
很困难
zl3450341 2009-08-12
  • 打赏
  • 举报
回复
貌似只能改源码了
  • 打赏
  • 举报
回复
不要存入数据库了,数据库大了查询很麻烦的。
在hibernate.cfg.xml中将show_sql设置为true,
这样hibernate会将sql语句显示出来,再设置一下log4j把hibernate生成的sql写入日志文件

你試試這樣看行不
  • 打赏
  • 举报
回复
过来学习学习。
min123456520 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 yousite1 的回复:]
不要存入数据库了,数据库大了查询很麻烦的。
在hibernate.cfg.xml中将show_sql设置为true,
这样hibernate会将sql语句显示出来,再设置一下log4j把hibernate生成的sql写入日志文件
[/Quote]
帮顶
这样在后台打印出来的数据,直接copy到数据库的查询分析器可执行
zhang_yu_QIN 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zou_wei_forever 的回复:]
在hibernate.cfg.xml中将show_sql设置为true,
这样hibernate会将sql语句显示出来,
[/Quote]

这个会显示在控制台上面..但是LZ说的转换的话 难度肯定很大,.

APOLLO_TS 2009-08-12
  • 打赏
  • 举报
回复
跟项目平台有关:Hibernate内部有拦截器机制。跟配置有关,在添加配置的时候就添加了相应的拦截器。
如下拦截器需要重新实现。
public interface Interceptor {
/**
* Called when sql string is being prepared.
* @param sql sql to be prepared
* @return original or modified sql
*/
public String onPrepareStatement(String sql);
}
将Hibernate内部拦截器内部实现置换掉。比较麻烦,没那么容易成功。
vash_stampeter 2009-08-12
  • 打赏
  • 举报
回复
看Hibernate的源代码,有几个类是解析HQL语句的。
lk_echo 2009-08-12
  • 打赏
  • 举报
回复
mark
zsl051 2009-08-12
  • 打赏
  • 举报
回复
还是不太很明白是什么,怎么转换的
zjc_love 2009-03-05
  • 打赏
  • 举报
回复
hibernate打印出来的sql语句都是赋上参数的
如果需要使用sql语句
应该只能一句句的改吧
改好象也不是很麻烦。。。
woshigefantong 2009-03-03
  • 打赏
  • 举报
回复
这个需求没有遇到过,关注
wkdgofyd0312 2009-02-25
  • 打赏
  • 举报
回复
学习学习。
chinaboy2005 2009-02-25
  • 打赏
  • 举报
回复
在hibernate.cfg.xml中将show_sql设置为true,
这样hibernate会将sql语句显示出来
herowzz 2009-02-25
  • 打赏
  • 举报
回复
他们都是开放源代码的,既然他们能取到sql,只不过显示的不一样而已
你改一改源码存到数据库里不就行了
dongjiachen 2009-02-25
  • 打赏
  • 举报
回复
这个方法我试过了,但显示出来的结果是在SQL Profiler的窗体中,后台得不到,我是要得到这个SQL语句存入库,所以这个方法很不理想
herowzz 2009-02-25
  • 打赏
  • 举报
回复
使用P6SPY +SQL Profiler
Landor2004 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dongjiachen 的回复:]
show_sql设置这个方法行不通,一是我要获得这个SQL,把这个SQL语句存入库,二是显示出来的是?的形式,我要带参的

[/Quote]
你要带参数的这个行不通,jdbc 的perpareStatement 就是预编译的,如果能获取的话,你只能获取带问号的sql语句和参数列表
加载更多回复(19)

67,517

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧