I use PreparedStatements a lot, but the biggest thing that annoys me about them is that you can't print them out after you have set the values. A PreparedSatement has no meaningful 'toString' implementation. Until this. This article from JavaWorld provides a simple way to add a wrapper to a PreparedStatement so that you can print the equivalent SQL and see what the current state is. I'm still playing with it, but it's much better than not having any way of seeing inside a PreparedStatement. Dave
I prefer the solution that just means changing the driver name to enable statement/timing logging rather than rewritting code. (i.e. P6spy) That said, you might as well just use the oracle tracing utilities. Simon
We plugged the DebuggableStatement into our persistence framework so its use is defined by the debugging property. ie when we are in debug mode, it also uses the DebuggableStatement to log statements, otherwise it uses PreparedStateents directly. I'm still not convinced the DebuggableStatement behaves exactly the same as a PreparedStatment, so I'm being wary, but it has definitely made the last two days easier for me.