Problema con connessione a database mediante Netbeans (java)

di il
2 risposte

Problema con connessione a database mediante Netbeans (java)

Buongiorno a tutti, e ringrazio chi potrà aiutarmi.

Sono un neofita di questo fantastico mondo, che sto studiando da autodidatta. Dopo i miei primi programmi in java ho deciso di fare un passo avanti e iniziare a studiare il db MySql, con conseguente integrazione Java.

Uso Netbeans (versione 28) e ho installato mysql, scaricato il jar mysql connector 9.6.0.

Il test di connessione del db (fatto mediante i Services di netbeans) dà esito positivo, ed ho importato la libreria facendo tasto destro sul progetto -> properties -> build -> compile -> manage ed aggiunto il jar mysql connector 9.6.0.

Ho scritto questo banale codice di prova:

package com.mycompany.databaseconnection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
*
* @author ---
*/
public class DatabaseConnection {
   private static final String URL = "jdbc:mysql://localhost:3306/mysql";
   private static final String USER = "root";
   private static final String PASSWORD = "password";
   public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
       System.out.println("Hello World!");
       Connection con = null;
        // Tentativo di connessione
       try {
           // Tentativo di connessione
           Class.forName("com.mysql.cj.jdbc.Driver");
           con = DriverManager.getConnection(URL, USER, PASSWORD);
           System.out.println("Connessione al database riuscita!");

           // ... operazioni sul database ...

       } catch (SQLException e) {
           System.err.println("Errore di connessione: " + e.getMessage());
       } finally {
           // Chiusura della connessione
           try {
               if (con != null) con.close();
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
   }
}

Tuttavia se eseguito questo è l'errore che restituisce:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:467)
    at java.base/java.lang.Class.forName(Class.java:458)
    at com.mycompany.databaseconnection.DatabaseConnection.main(DatabaseConnection.java:25)

Oramai ci sto sbattendo la testa da un po', e non escludo che tutto sia dovuto da una mia stupidata data la mia inesperienza. Vi ringrazio per chi potrà darmi una mano :)

Aggiornamento: con Eclipse non ho questo problema. Quindi il problema è chiaramente la libreria in netbeans.

2 Risposte

  • Re: Problema con connessione a database mediante Netbeans (java)

    Quasi certamente quello che hai fatto è sbagliato.

    Devi dare un po' più di informazioni: che tipo di applicazione stai sviluppando (Ant? Maven? Gradle?)? NetBeans, di default, crea progetti di tipo Ant.

    Qui sopra ti ho messo un esempio di applicazione Ant e un esempio di applicazione Maven (Gradle non lo uso). La differenza la noti dall'icona (i progetti Maven hanno quella piccola "M").

    Se stai lavorando su un progetto di tipo Ant, allora il driver JDBC lo devi aggiungere alle "Libraries". Per prima cosa devi configurare la libreria all'interno di NetBeans (Menu Tools -> Libraries -> New Library -> Gli dai un nome (ad esempio MySQL_JDBC) e nella scheda "Classpath" aggiungi il JAR del driver. A questo punto, tasto destro sulla voce "Libraries" del tuo progetto -> Add Library -> Scegli la libreria MySQL_JDBC (o il nome che hai scelto prima).

    Se stai lavorando su un progetto Maven la cosa è molto più semplice, perchè ti basta modificare il file "pom.xml" aggiungendo la dependency (cercala scrivendo su Google "MySQL Connector J maven"). Sarà qualcosa del genere:

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>9.6.0</version>
        <scope>compile</scope>
    </dependency>

    Ciao.

  • Re: Problema con connessione a database mediante Netbeans (java)

    L'errore è chiaro: com.mysql.cj.jdbc.Driver non trova il driver per connettersi al DB.

    Prova a inserire nel pom(se usi maven) la dipendenza dell' utente SpiritoLibero.

Devi accedere o registrarti per scrivere nel forum
2 risposte