Ho un'app Java basata su Maven e desidero connettermi al server MySQL.Maven - java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
mio pom ha:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
Con runtime, come voglio per connettersi al server MySQL in fase di esecuzione - anche provato compilazione e forniti, ma non funziona.
Il codice SQL è standard:
String dbClass = "com.mysql.jdbc.Driver";
Class.forName(dbClass);
Connection connection = DriverManager.getConnection(dbUrl,
username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
String tableName = resultSet.getString(1);
System.out.println("Table name : " + tableName);
}
Quando ho eseguito questo da Eclipse, funziona nomi di tabella belle e stampa.
Tuttavia, da parte di Maven, lo SNAPSHOT generato genera sempre un errore se eseguito tramite>java -jar target\File.jar
dopo l'esecuzione di mvn clean install
.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Che cosa mi manca qui per ottenere la compilazione Maven al lavoro? L'esecuzione di mvn clean install
non dà alcun errore e si integra perfettamente. È solo quando si esegue lo SNAPSHOT exe si verifica l'errore.
Il vaso MySQL è nel mio repository .m2, e ho provato ad aggiungerlo esplicitamente tramite la riga di comando mvn, ma dice che esiste già.
È il repo m2 sul classpath? Generalmente il tuo IDE lo aggiungerà quando lo avvierai, ma se lo lanci dalla riga di comando, potresti doverlo specificare manualmente. –