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]