MySQL and Prepared Statements
MySQL have recently started adding some support for server-side prepared statements (from version 4.1 as far as I know). As a result the MySQL Connector/J JDBC driver has now been modified so that calls to prepareStatement() actually attempt to prepare the statement on the server (in the past they simply created a normal statement on the client).
Unfortunately the MySQL development team haven't thought about backward compatibility in the JDBC driver. Many calls to prepareStatement() that worked in pre 3.1.0 versions in the driver now fail in version 3.1.6 because they are attempting to prepare the statement but the server doesn't have the appropriate support yet. Instead of reverting to creating a non-prepared statement in these instances the driver fails with the error message "This command is not supported in the prepared statement protocol yet".
The work around for me was to use createStatement() instead of prepareStatement() for the calls in question. Luckily only a few lines of code were affected.