站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题如何获取PreparedStatement参数设置的值?

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

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


如:
String sql="select * from table where field1=? and field2=? "
...
preparedStatement.setString(1,"a");
preparedStatement.setString(2,"b");

怎样才能获取 preparedStatement的参数值a,b?



jdk的 PreparedStatement接口并未定义get方法,不同厂商的jdbc驱动实现类不知道是否提供,你可以查一下,我查了oracle的驱动也没有提供。
所以只能换一种思路解决,在set的时候先将参数存入一个Map,然后取的时候从map取。


服了,你自己放进去的参数,还要从preparedStatement取出来?你不觉得很ugly吗?


就是啊,自己设置进去的还取来干吗?


服了吧?谁告诉你是我自己放进去的?
不知道你们的SQL Logger是如何打印的呢?
难道是logger.Log("select * from table where field1="+value1+".......)?

我是想通过DAO(我们自己的DAO基类,封装了DAOSelectStatement/DAOUpdateStatement等)
将PreparedStatement赋值后将Log SQL.


应该没有通用的方法,否则Hibernate在打印SQL的时候也不会挂着"?"了。dragon525() 推荐的方法不错,你可以设置一个变量isDebug,如果为true,就用一个Map保存set的参数,如果是false,就不保存了。


呵呵,原来是要log 还以为你要干嘛呢?:)
试试P6SPY吧。
http://www.javaeye.com/topic/4143


看一下装入日志的类就知道了


↑返回目录
前一篇: web.xml的疑问
后一篇: 关于hibernate的Session.save() 方法...