Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [Java]Problema connessione Java-MySQL

    Salve a tutti!

    Voglio illustrarvi il mio problema. Ho un database progettato in MySQL.
    Devo estrarne dati tramite un'applicazione scritta in Java. Ho già letto la pillola. Anche se mi è stata molto utile per la comprensione del concetto, non sono venuto a capo del problema.

    A tal proposito, scarico la JDK per programmare in java e ConnectorJ per collegare la JDK al server MySql. Siccome il mio prof è un cretino, non ha parlato nè postato una guida sul funzionamento di tutto ciò e quindi è una giornata che cerco di far funzionare tutto questo.

    Cerco qualche guida sul web, trovo che devo scompattare, cosa che ho fatto, il file "mysql-connector-java-5.1.7-bin" nella cartella dell'applicazione che devo realizzare in java. Creo,secondo il libro che possiedo, una classe che mi permette di interagire con il database, ma, usando l'editor scite, mi dà alcuni errori nell'eseguire la classe appena creata. Stessa cosa se eseguo da riga di comando: "C:\java prova". Nessuna risposta.

    Il database scritto in MySQL, quindi con estensione "*.sql", l'ho messo nella stessa cartella della mia classe scritta in java. Devo fare così o in altro modo?

    Eccovi il codice della classe:

    codice:
    import java.sql.*;
    public class Primodb {
      public static void main(String[] arg) {
        Connection conn = null;
        try {
          Class.forName("com.mysql.jdbc.Driver");
          conn = DriverManager.getConnection("jdbc:mysql:basi1911");
          
          }
          catch (Exception e) { System.exit(1); }
          try {
    	Statement interrogazione = conn.createStatement();
    	ResultSet risultato = interrogazione.executeQuery("select * from impiegato");
    	
    	while (risultato.next()) {
    	  String nomeimpiegato = risultato.getString("Nome impiegato");
    	  System.out.println(nomeimpiegato);
    	  }
    	  }
    	  catch (Exception e) { System.exit(1); }
    	  }
    	  }

    Un ultima cosa: uso Windows XP, MySql server 5.1, ConnectorJ 5.1.7 e la JDK 6 update 11.

    Cosa sto sbagliando?

    Grazie, ciao.

  2. #2
    prova a far stampare gli errori che catturi con quei try catch
    I DON'T Double Click!

  3. #3
    ecco quello che è uscito facendo eseguire il programma, dopo la compilazione con scite..

    codice:
    java.lang.NoClassDefFoundError: Primodb
    Caused by: java.lang.ClassNotFoundException: Primodb
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: Primodb.  Program will exit.
    Exception in thread "main" >Exit code: 1

  4. #4
    tu lo sai, vero, che devi dare al file lo stesso nome della classe che contiene il main?
    I DON'T Double Click!

  5. #5
    si lo so..infatti il file l'ho salvato Primodb.java e compilato come Primodb.class..secondo me l'errore è dato dal fatto che uso connectorj e non l'ho configurato correttamente..ho impostato la classpath nelle variabili d'ambiente..ma non ne vengo a capo

  6. #6
    senti fai cosi:

    catch (Exception e) {
    System.out.println(e.getMessage());
    System.exit(1); }

    per entrambi i catch, poi ricompilalo e fallo andare.
    I DON'T Double Click!

  7. #7
    Ma utilizzi un ide java per fare questi esercizi(eclipse, netbeans)?
    Comunque ipotizziamo questo:
    -il tuo CLASSPATH lo imposti in questo modo:
    set CLASSPATH=%CLASSPATH%;mysqldriver.jar;.
    - compili il file Primodb.java con javac correttamente?
    - se si esegui ora java Primodb
    - l'url JDBC per mysql è questo comunque: jdbc:mysql://basi1911/<nome db>

    Fammi sapere!

  8. #8
    purtroppo la situazione non cambia..stessi errori nell'eseguire la classe..scusami artorius, ma il database a cui devo collegarmi deve essere nella stessa directory dell'applicazione java? il database che sto usando è mysql, ovviamente con mysql server installato..

  9. #9
    Originariamente inviato da crystaldreams
    Ma utilizzi un ide java per fare questi esercizi(eclipse, netbeans)?
    Comunque ipotizziamo questo:
    -il tuo CLASSPATH lo imposti in questo modo:
    set CLASSPATH=%CLASSPATH%;mysqldriver.jar;.
    - compili il file Primodb.java con javac correttamente?
    - se si esegui ora java Primodb
    - l'url JDBC per mysql è questo comunque: jdbc:mysql://basi1911/<nome db>

    Fammi sapere!
    allora crystaldreams..non uso eclipse o netbeans..uso un editor open source, scite, che mi compila e mi esegue il programma..

    cerco di impostare la classpath come dici tu..
    il file viene compilato in modo corretto..
    nell'url "jdbc:mysql://basi1911/<nome db>" che mi hai scritto tu, basi1911 è indicato come host,non come database..

    questo è il codice modificato:

    codice:
    import java.sql.*;
    public class Primodb {
      public static void main(String[] arg) {
        Connection conn = null;
        try {
          Class.forName("com.mysql.jdbc.Driver");
          conn = DriverManager.getConnection("jdbc:mysql://localhost/basi1911");
          
          }
          catch (Exception e) {System.out.println(e.getMessage());
    System.exit(1); }
          try {
            Statement interrogazione = conn.createStatement();
            ResultSet risultato = interrogazione.executeQuery("select * from impiegato");
            
            while (risultato.next()) {
              String nomeimpiegato = risultato.getString("Nome impiegato");
              System.out.println(nomeimpiegato);
              }
              }
              catch (Exception e) { System.out.println(e.getMessage());
    System.exit(1); }
              }
              }

  10. #10
    Ma la classe java viene compilata?
    Se si allora il classpath è corretto!
    Per eseguire la classe, .class deve essere nel classpth, ecco il perchè del ;. alla fine del set CLASSPATH. A posto del nome host metti localhost come ip del db server.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.