Prova a caricare il driver prima di utilizzare DriverManager
classe.
try{
String dbURL = "jdbc:mysql://localhost:3306/murach";
String username="root";
String password="1234";
Class.forName("com.mysql.jdbc.Driver");//load driver
Connection con2 = DriverManager.getConnection(dbURL, username, password);
String query = "insert into tblUser1(firstname) values('shaon')";
Statement statmnt = con2.createStatement();
statmnt.executeUpdate(query);
}
Da O'Reilly:
Questo è necessario poiché hai posizionato la libreria all'interno della cartella JDK/lib che presumo sia caricata utilizzando un ClassLoader diverso da quello utilizzato dalla tua applicazione. Poiché sono stati utilizzati caricatori di classi differenti, la registrazione automatica che avviene tramite i driver JDBC 4.0+ non avrà effetto. Potresti provare a posizionare il file jar del driver all'interno della lib del tuo server delle applicazioni, che dovrebbe utilizzare lo stesso ClassLoader della tua applicazione. Vedi:Quando è necessario Class.forName per la connessione a un database tramite JDBC in un'app Web?
Riguardo alla registrazione automatica
Riguardo ai caricatori di servizi