io utilizzo una classe simile a quella esposta sotto e non ho mai avuto problemi.
Utilizzata con access, mySql e db2.

codice:
public class CFactory {

	static{
		try{
			Class.forName("com.mysql.jdbc.Driver");
		}catch(ClassNotFoundException cnfEx){
			cnfEx.printStackTrace();
		}
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}catch(ClassNotFoundException cnfEx){
			cnfEx.printStackTrace();
		}
		[...]
	}
	
	
	public Connection getConnection(){
		return getConnection(DEFAULT_KEY);
	}
	
	public Connection getConnection(String key){
		
		Connection conn = null;
		
		[...]

		try{
			conn=DriverManager.getConnection(urlConnection,properties);
		}catch(SQLException e){
			e.printStackTrace();
		}
		return conn;
	}

}
Con access mi capitava di avere problemi quando i record in tabella superavano
qualche decina di migliaia. I problemi nascevano se utilizzavo una connection mantenedola
aperta per più sessioni di insert/update/delete. Si incartavano gli indici, cioè, pur andando bene le
insert / delete a successive select non riuscivo ad estrarre le nuove chiavi aggiunte.
Questo si risolve se i comandi eseguiti all'interno della stessa connessione sono pochi... meglio se
uno solo (o più di uno ma su tabelle diverse).

Cmq.. per tornare al tuo problema.. scaricati mySql... con i relativi driver e manager grafici così da provare
tutte e due le connessioni. E' semplice da installare e anche le tue tabelle essendo semplicissime
dovresti riuscire a crearle senza problemi.