I would suggest for you to allow for multiple data storage systems. (IE, MySQL, flat file, sqlite) This is just a little thing that I really hoped people would do, but didn’t (most of the time) in bukkit plugins.
Regarding PreparedStatements:
I know that I don’t have to prepare the statement again like I do now, I can re-use them.
But what happens when the database connection gets closed and renewed. Do I have to prepare the statements again after that happens?
Also, I thought of using plain text or java properties files to externalize my sql statements. What do you think?
Right of the bat I can not notice anything wrong with your statements (just glancing, nor can I remember from when i ported all that over).
Prepared Statements are per connection. What this meas is if you have more than one connection to your database (or have to reconnect) you should make sure that the Prepared Statement is always using the same connection every time. If you have to make a new connection (due to time out for example…) you will need to recreate the Prepared Statement.
I personally don’t like storing such things out of vars, but that’s a design call really. But I would say not to do it strictly from preference, there my be people who say no for performance, or yes because why not?