论坛首页 Java企业应用论坛

如何获取PreparedStatement参数设置的值?

浏览 19826 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-23  
DAO
如:
 String sql="select * from table where field1=? and field2=? "
 ...
 preparedStatement.setString(1,"a");
 preparedStatement.setString(2,"b");


怎样才能获取 preparedStatement的参数值a,b?
   发表时间:2006-09-23  
好像是这个方法.
getParameterMetaData
ParameterMetaData getParameterMetaData()
                                       throws SQLException检索此 PreparedStatement 对象的参数的编号、类型和属性。

返回:
一个 ParameterMetaData 对象,它包含有关此 PreparedStatement 对象的参数的编号、类型和属性的信息
抛出:
SQLException - 如果发生数据库访问错误
不过还是不明白,"select * from table where field=? and field=?"
我想设置的参数应该是通过函数参数传递过来,
获取 preparedStatement的参数值a,b又有什么意义??
0 请登录后投票
   发表时间:2006-09-23  
ParameterMetaData 没有获取参数值的方法。
我是想在PreparedStatement绑定参数后,把SQL(含设置后的参数值)log出来
0 请登录后投票
   发表时间:2006-09-23  

ibm有篇现成的文章,通过装饰模式来实现.

http://www-128.ibm.com/developerworks/cn/java/j-loggable/j-loggable.zip

http://www-128.ibm.com/developerworks/cn/java/j-loggable/index.html

JDBC 查询日志变得简单

使用增强型PreparedStatement向JDBC代码增加日志功能

级别: 初级

Jens Wyke, 顾问, IBM

2003 年 7 月 17 日

0 请登录后投票
   发表时间:2006-09-23  
谢谢楼上,不过那个j-loggable不能直接用,没有全部实现PrepareStatement接口
0 请登录后投票
   发表时间:2006-09-24  
各位是通过什么方式打印出PrepareStatement设置参数后的SQL?
0 请登录后投票
   发表时间:2006-09-25  
用p6spy,设置一下就行
0 请登录后投票
   发表时间:2006-09-25  
用了一下p6spy还不错,但是能否修改p6spy的输出格式?
未赋值的statement不想显示,否则有点乱
0 请登录后投票
   发表时间:2006-09-25  
OK,可以了,修改了一下P6spy的源码
0 请登录后投票
   发表时间:2007-02-12  
这个应该有很多人会用到,能否共享一下?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics