<p>I'm writing an application which has to be configurable to connect to Oracle, SQL Server and MySQL depending on client whim.</p>

<p>Up till now I'd been planning on using the JDBC-ODBC bridge and just connecting to the databases using different connection strings.</p>

<p><strong>I'm told this is not very efficient.</strong></p>

<ol>
<li><p>Is there a pattern or best practice for connecting to multiple database systems? Or for selecting which driver to use?</p></li>
<li><p>Should I have it configurable? but include all three drivers or build three separate clients?</p></li>
</ol>

<p>I'm not doing anything complex just pumping (inserting) data into the database from an event stream.</p>

If you need anything complex, Hibernate is a good choice.
otherwise, what I would do is store your connection details in a properties file (or some other form of configuration) - namely: driver classname, JDBC url, username and password.
Then, all you need to do is load up the connection details from your properties file and include the correct JAR file on your classpath and you're done.
You could use a library such as Commons-DBCP if you wanted it to be a little easier to configure but other than that it's all you need to do (provided your SQL statements work on every database, of course).