The PreparedStatement API is a bit poor on the getter side and if the wrapper class has a poor toString(), I think there is not that much that can be done about it, server-side-fetched objects are often proxies. You can of course use reflection on it but it's not a very pretty approach.
Well the usual approach to solve this issue is adding a proxy class which can trace JDBC Statements. Time ago I tested it with P6Spy and wrote a small JDBC trace tutorial about it. Give it a try.
Hope it helps
You might get some useful output by setting the driver property: profileSQL=true
I did tried profileSQL=true, but it gave lots of logging,
Let me try P6Spy and let you know Francesco.