Is there a easy way to measure execution time of all sql statements that are executed by JDBC and print the result to the output?
Some may advise me to use AOP to do this but I'm trying to avoid this if possible. Is there another way?
解决方案
If you are not running the application in an application server that provides you a DataSource, you would find the log4jdbc project to be useful. The jdbc.sqltiming logger provided by the project will allow you to record the execution of the SQL statements executed.
You could use this in an application that relies on DataSources, by wrapping the connection returned from the DataSource in a ConnectionSpy object. This would require changes in your codebase.
There are of course, other options available the time of writing this:
the P6Spy project that can still be used in most application servers. Although certainly dated (and considered abandoned by some), it is by no means obsolete.
the JAMon API allows for monitoring of execution time for SQL commands executed. This would require using the JAMon API to monitor the connection.