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

wzrlover 2006-09-24 09:46:15
如:
String sql="select * from table where field1=? and field2=? "
...
preparedStatement.setString(1,"a");
preparedStatement.setString(2,"b");

怎样才能获取 preparedStatement的参数值a,b?
...全文
1080 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DeepNightTwo 2006-09-25
  • 打赏
  • 举报
回复
应该没有通用的方法,否则Hibernate在打印SQL的时候也不会挂着"?"了。dragon525() 推荐的方法不错,你可以设置一个变量isDebug,如果为true,就用一个Map保存set的参数,如果是false,就不保存了。
wzrlover 2006-09-25
  • 打赏
  • 举报
回复
服了吧?谁告诉你是我自己放进去的?
不知道你们的SQL Logger是如何打印的呢?
难道是logger.Log("select * from table where field1="+value1+".......)?

我是想通过DAO(我们自己的DAO基类,封装了DAOSelectStatement/DAOUpdateStatement等)
将PreparedStatement赋值后将Log SQL.
li_d_s 2006-09-25
  • 打赏
  • 举报
回复
就是啊,自己设置进去的还取来干吗?
会Java的蝈蝈 2006-09-25
  • 打赏
  • 举报
回复
服了,你自己放进去的参数,还要从preparedStatement取出来?你不觉得很ugly吗?
常遇道 2006-09-25
  • 打赏
  • 举报
回复
看一下装入日志的类就知道了
dragon525 2006-09-25
  • 打赏
  • 举报
回复
呵呵,原来是要log 还以为你要干嘛呢?:)
试试P6SPY吧。
http://www.javaeye.com/topic/4143
dragon525 2006-09-24
  • 打赏
  • 举报
回复
jdk的 PreparedStatement接口并未定义get方法,不同厂商的jdbc驱动实现类不知道是否提供,你可以查一下,我查了oracle的驱动也没有提供。
所以只能换一种思路解决,在set的时候先将参数存入一个Map,然后取的时候从map取。

67,513

社区成员

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

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