One of the more interesting features of MySQL‘s JDBC driver is the fact that much of it the functionality it has it alterable or outright replacable by the end user without changing any of its code.
The network sockets can be replaced, the logging can be replaced, the usage advisor feature‘s reporting can be replaced, one can plug into connection lifecycle events (creation, destruction, autocommit state change, transaction boundaries, etc), and functionality can even be injected pre-query or post-query, all without changing a line of code in the driver itself.
I‘ll be showing how all of this works at the 2008 MySQL Conference. Some of the things I demonstrate will be for “fun“ (rewriting simple queries, supporting syntax other than SQL), other for “profit” (profiling, extrusion prevention, injecting bad behavior for system testing). …
[Read more]