JAVA + mysql

di il
6 risposte

JAVA + mysql

Non riesco a trovare l'errore nel mio codice dove sbaglio?
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package database;
import java.sql.*;
/**
 *
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       try {
      Class.forName("com.mysql.jdbc.Driver");
      String url = "jdbc:mysql://localhost:8889/database";
      Connection con = DriverManager.getConnection(url, "root", "root");
      Statement cmd = con.createStatement();
      String query = "SELECT * FROM utenti";
      ResultSet res = cmd.executeQuery(query);
      while (res.next()) {
        System.out.println(res.getString("id"));
        System.out.println(res.getString("username"));
      }
      res.close();
      cmd.close();
      con.close();
    }

    catch (SQLException e){
      e.printStackTrace();
    }

    catch (ClassNotFoundException e){
      e.printStackTrace();
    }
    }
    
}
 
Messaggio di ritorno in output:
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home"
cd /Users/chiaracentury/NetBeansProjects/database; /Users/chiaracentury/.gradle/wrapper/dists/gradle-4.10.2-bin/cghg6c4gf4vkiutgsab8yrnwv/gradle-4.10.2/bin/gradle --configure-on-demand -x check run
Configuration on demand is an incubating feature.
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE

> Task :run
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:332)
at database.Main.main(Main.java:19)

BUILD SUCCESSFUL in 0s
2 actionable tasks: 1 executed, 1 up-to-date

6 Risposte

  • Re: JAVA + mysql

    chiaraberti13 ha scritto:


    Non riesco a trovare l'errore nel mio codice dove sbaglio?
    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Non hai messo "in classpath" il JAR del driver per MySQL. Vedo che usi Gradle (non lo conosco particolarmente). Hai nel file di build la "dipendenza" verso il driver?
  • Re: JAVA + mysql

    Hai nel file di build la "dipendenza" verso il driver?
    Purtroppo questo non lo so, sono una principiante di Java e sto trovando serie difficoltà a connettermi e interagire con il database..
  • Re: JAVA + mysql

    chiaraberti13 ha scritto:


    Hai nel file di build la "dipendenza" verso il driver?
    Purtroppo questo non lo so, sono una principiante di Java e sto trovando serie difficoltà a connettermi e interagire con il database..
    L'altro problema è che stai anche usando un sistema di "build" (Gradle) che non conosci.

    Comunque nel file build.gradle dovresti avere una sezione (se non ce l'hai, mettila)

    dependencies {
    }

    Dentro dovresti metterci

    implementation 'mysql:mysql-connector-java:8.0.16'

    Non so che versione del server MySQL stai usando ma se non ne hai una davvero vecchissima, il driver v8.0.16 dovrebbe andare bene.
  • Re: JAVA + mysql

    Niente... sempre lo stesso errore!!
  • Re: JAVA + mysql

    Ho aggiustato il codice in questo modo, non mi dá più errori ma non mi restituisce in output i campi che ho richiesto..
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package database;
    import java.sql.*;
    /**
     *
     */
    public class Main {
        
        private final static String URL = "jdbc:mysql://localhost:8889/database?zeroDateTimeBehavior=convertToNull";
        private final static String USER = "root";
        private final static String PASSWORD = "root";
        private final static String DRIVER = "com.mysql.cj.jdbc.Driver";
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
           try {
          Class.forName(DRIVER);
          Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
          Statement cmd = con.createStatement();
          String query = "SELECT * FROM utenti";
          ResultSet res = cmd.executeQuery(query);
          while (res.next()) {
            System.out.println(res.getString("id"));
            System.out.println(res.getString("username"));
          }
          res.close();
          cmd.close();
          con.close();
        }
    
        catch (SQLException | ClassNotFoundException e){
        }
        }
        
    }
  • Re: JAVA + mysql

    chiaraberti13 ha scritto:


        catch (SQLException | ClassNotFoundException e){
        }
    Viene fuori una eccezione? Falla vedere in output, NON mettere un catch "vuoto" come quello appena quotato sopra!
Devi accedere o registrarti per scrivere nel forum
6 risposte