当前页面: 开发资料首页 → 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
看一下装入日志的类就知道了