Intente cargar el controlador antes de usar el DriverManager
clase.
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);
}
De O'Reilly:
Esto es necesario ya que colocó la biblioteca dentro de la carpeta JDK/lib, que supongo que se carga con un ClassLoader diferente al que usa su aplicación. Dado que se utilizaron diferentes cargadores de clases, el registro automático que se lleva a cabo mediante los controladores JDBC 4.0+ no tendrá efecto. Podría intentar colocar el archivo jar del controlador dentro de la biblioteca de su servidor de aplicaciones, que debería usar el mismo ClassLoader de su aplicación. Ver:¿Cuándo se necesita Class.forName al conectarse a una base de datos a través de JDBC en una aplicación web?
Con respecto al registro automático
Con respecto a los cargadores de servicios