Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    229

    [java]: da mysql a java

    ciao a tutti,
    ho scritto un programma in java che interfaccia un database in My-Sql come posso stampare tutti i record del database.
    grazie in anticipo

  2. #2
    codice:
    try
    {
    	 // Carica i driver JDBC per MySQL
    	 Class.forName("com.mysql.jdbc.Driver");
    	
    	 // Apre la connessione con il database
    	 con = DriverManager.getConnection(url, usr, psw);
    	
    	// crea uno 'statement' per l’invio dei comandi SQL al database
    	 stmt = con.createStatement();
    	
    	SQL_query = "SELECT * FROM tabella;";
    
    	// Invia la query SQL al database e salva il risultato in rs
    	 rs = stmt.executeQuery(SQL_query);
    				
    	while (rs.next())
    	{
    		variabile1 = rs.getString(1);
    		variabile2 = rs.getString(2);
    		variabile3 = rs.getString(3);
    	}
    
    	//output
    	System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    
    	// chiude la connessione con il database
    	con.close();
    }
    catch (ClassNotFoundException ex)
    {	
    	ex.printStackTrace();
    }
    catch (SQLException ex)
    {
    	ex.printStackTrace();
    }
    Questa è per una stampa su video, se invece devi stampare su carta, potresti provare invece del System.out.println(); un metodo per scriverelo su file per poi stamparlo.
    www.matteosteri.it

  3. #3
    Originariamente inviato da tommisceddu
    codice:
    try
    {
    	 // Carica i driver JDBC per MySQL
    	 Class.forName("com.mysql.jdbc.Driver");
    	
    	 // Apre la connessione con il database
    	 con = DriverManager.getConnection(url, usr, psw);
    	
    	// crea uno 'statement' per l’invio dei comandi SQL al database
    	 stmt = con.createStatement();
    	
    	SQL_query = "SELECT * FROM tabella;";
    
    	// Invia la query SQL al database e salva il risultato in rs
    	 rs = stmt.executeQuery(SQL_query);
    				
    	while (rs.next())
    	{
    		variabile1 = rs.getString(1);
    		variabile2 = rs.getString(2);
    		variabile3 = rs.getString(3);
    	}
    
    	//output
    	System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    
    	// chiude la connessione con il database
    	con.close();
    }
    catch (ClassNotFoundException ex)
    {	
    	ex.printStackTrace();
    }
    catch (SQLException ex)
    {
    	ex.printStackTrace();
    }
    Questa è per una stampa su video, se invece devi stampare su carta, potresti provare invece del System.out.println(); un metodo per scriverelo su file per poi stamparlo.
    Ma nel seguente codice dove specifico il nome del database?
    Tra l'altro ho provato a compilare il codice senza cambiargli una virgola e mi da una marea di errori

    P.S: Visto che ci siamo qualcuno conosce una mini guida che spiega per benino come interfacciare il mysql con il java?

  4. #4
    beh è normale che ti da degli errori le variabili url, usr e psw non le hai dichiarate e ne inizializzate.

    prova aggiungendo:
    codice:
    url = "localhost/nome_data_base";
    usr = "user per accedere al server";
    psw = "password per accedere al server"
    cosi dovrebbe funzionare a meno che non ti sei dimenticato di copiare i driver di mysql nella directory della jdk ...jre\lib\ext
    e allora in quel caso ti da un NoClassFoundException perchè non li trova.

    comunque è consigliatissima una guida, la documentazione di MYSQL e la documentazione di JAVA
    www.matteosteri.it

  5. #5
    Originariamente inviato da tommisceddu
    beh è normale che ti da degli errori le variabili url, usr e psw non le hai dichiarate e ne inizializzate.

    prova aggiungendo:
    codice:
    url = "localhost/nome_data_base";
    usr = "user per accedere al server";
    psw = "password per accedere al server"
    cosi dovrebbe funzionare a meno che non ti sei dimenticato di copiare i driver di mysql nella directory della jdk ...jre\lib\ext
    e allora in quel caso ti da un NoClassFoundException perchè non li trova.

    comunque è consigliatissima una guida, la documentazione di MYSQL e la documentazione di JAVA
    Ovviamente non sono uno sprovveduto, le avevo settate le variabili e il mysql lo conosco abbondantemente.
    In ogni caso non conoscendo l'uso del comando try (non saprei nemmeno come salvare) ho modificato il tutto con una semplice classe:

    codice:
    public class db
    {
    	 // Carica i driver JDBC per MySQL
    	 Class.forName("com.mysql.jdbc.Driver");
    	 
    	 String url = "localhost/db";
    	 String usr = "root";
    	 String psw = "password";
    	
    	 // Apre la connessione con il database
    	 con = DriverManager.getConnection(url, usr, psw);
    	
    	// crea uno 'statement' per l’invio dei comandi SQL al database
    	 stmt = con.createStatement();
    	
    	SQL_query = "SELECT * FROM tabella;";
    
    	// Invia la query SQL al database e salva il risultato in rs
    	 rs = stmt.executeQuery(SQL_query);
    				
    	while (rs.next())
    	{
    		variabile1 = rs.getString(1);
    		variabile2 = rs.getString(2);
    		variabile3 = rs.getString(3);
    	}
    
    	//output
    	System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    
    	// chiude la connessione con il database
    	con.close();
    }
    catch (ClassNotFoundException ex)
    {	
    	ex.printStackTrace();
    }
    catch (SQLException ex)
    {
    	ex.printStackTrace();
    }
    }
    Però al momento di compilare mi da una marea di errori:

    --------------------Configuration: j2sdk1.4.2_04 <Default>--------------------
    C:\java\Sql\db.java:4: <identifier> expected
    Class.forName("com.mysql.jdbc.Driver");
    ^
    C:\java\Sql\db.java:11: <identifier> expected
    con = DriverManager.getConnection(url, usr, psw);
    ^
    C:\java\Sql\db.java:14: <identifier> expected
    stmt = con.createStatement();
    ^
    C:\java\Sql\db.java:16: <identifier> expected
    SQL_query = "SELECT * FROM tabella;";
    ^
    C:\java\Sql\db.java:19: <identifier> expected
    rs = stmt.executeQuery(SQL_query);
    ^
    C:\java\Sql\db.java:21: illegal start of type
    while (rs.next())
    ^
    C:\java\Sql\db.java:29: <identifier> expected
    System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    ^
    C:\java\Sql\db.java:32: <identifier> expected
    con.close();
    ^
    C:\java\Sql\db.java:34: 'class' or 'interface' expected
    catch (ClassNotFoundException ex)
    ^
    C:\java\Sql\db.java:42: 'class' or 'interface' expected
    }
    ^
    C:\java\Sql\db.java:43: 'class' or 'interface' expected
    ^
    11 errors

    Process completed.


    Sicuramente è qualcosa riguardo a quel comando Try, ma se lo includo in una classe mi da errore, se lo cancello e metto il codice come se fosse una classe mi da comunque errore. Quindi se puoi spiegarmi qualcosa a riguardo o come ho già detto potresti segnalarmi una buona guida in internet che spieghi per bene l'interfacciamento java <=> mysql te ne sarei grato.

  6. #6
    Magari tramite DriverManager mi è più facile colllegarmi ad un database? che dite? il fatto è che anche questo non lo so usare

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il problema non stà nell'usare o non usare DriverManager... il problema è che hai creato una classe senza nessun metodo... tutte quelle istruzioni che hai scritto nella classe db, andrebbero inserite in un metodo
    codice:
    public class db {
       public void metodo() {
          ...
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Giusto scusa ma sono un pò con la testa nel pallone

    Comunque non so perchè ma continua a non funzionare anche con l'impostazione del metodo:

    db.java:
    codice:
    public class db
    {
    	public static void main(String[] args) throws Exception{
    		 // Carica i driver JDBC per MySQL
    		 Class.forName("com.mysql.jdbc.Driver");
    		 
    		 String url = "localhost/db";
    		 String usr = "root";
    		 String psw = "password";
    		
    		 // Apre la connessione con il database
    		 con = DriverManager.getConnection(url, usr, psw);
    		
    		// crea uno 'statement' per l’invio dei comandi SQL al database
    		 stmt = con.createStatement();
    		
    		SQL_query = "SELECT * FROM tabella;";
    	
    		// Invia la query SQL al database e salva il risultato in rs
    		 rs = stmt.executeQuery(SQL_query);
    					
    		while (rs.next())
    		{
    			variabile1 = rs.getString(1);
    			variabile2 = rs.getString(2);
    			variabile3 = rs.getString(3);
    		}
    	
    		//output
    		System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    	
    		// chiude la connessione con il database
    		con.close();
    	}
    
    }
    Mi da ancora una sfilza di errori, propio tra l'altro sulla connessione al db, sulle query:

    --------------------Configuration: j2sdk1.4.2_04 <Default>--------------------
    C:\java\Sql\db.java:12: cannot resolve symbol
    symbol : variable con
    location: class db
    con = DriverManager.getConnection(url, usr, psw);
    ^
    C:\java\Sql\db.java:12: cannot resolve symbol
    symbol : variable DriverManager
    location: class db
    con = DriverManager.getConnection(url, usr, psw);
    ^
    C:\java\Sql\db.java:15: cannot resolve symbol
    symbol : variable stmt
    location: class db
    stmt = con.createStatement();
    ^
    C:\java\Sql\db.java:15: cannot resolve symbol
    symbol : variable con
    location: class db
    stmt = con.createStatement();
    ^
    C:\java\Sql\db.java:17: cannot resolve symbol
    symbol : variable SQL_query
    location: class db
    SQL_query = "SELECT * FROM tabella;";
    ^
    C:\java\Sql\db.java:20: cannot resolve symbol
    symbol : variable rs
    location: class db
    rs = stmt.executeQuery(SQL_query);
    ^
    C:\java\Sql\db.java:20: cannot resolve symbol
    symbol : variable SQL_query
    location: class db
    rs = stmt.executeQuery(SQL_query);
    ^
    C:\java\Sql\db.java:20: cannot resolve symbol
    symbol : variable stmt
    location: class db
    rs = stmt.executeQuery(SQL_query);
    ^
    C:\java\Sql\db.java:22: cannot resolve symbol
    symbol : variable rs
    location: class db
    while (rs.next())
    ^
    C:\java\Sql\db.java:24: cannot resolve symbol
    symbol : variable variabile1
    location: class db
    variabile1 = rs.getString(1);
    ^
    C:\java\Sql\db.java:24: cannot resolve symbol
    symbol : variable rs
    location: class db
    variabile1 = rs.getString(1);
    ^
    C:\java\Sql\db.java:25: cannot resolve symbol
    symbol : variable variabile2
    location: class db
    variabile2 = rs.getString(2);
    ^
    C:\java\Sql\db.java:25: cannot resolve symbol
    symbol : variable rs
    location: class db
    variabile2 = rs.getString(2);
    ^
    C:\java\Sql\db.java:26: cannot resolve symbol
    symbol : variable variabile3
    location: class db
    variabile3 = rs.getString(3);
    ^
    C:\java\Sql\db.java:26: cannot resolve symbol
    symbol : variable rs
    location: class db
    variabile3 = rs.getString(3);
    ^
    C:\java\Sql\db.java:30: cannot resolve symbol
    symbol : variable variabile1
    location: class db
    System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    ^
    C:\java\Sql\db.java:30: cannot resolve symbol
    symbol : variable variabile2
    location: class db
    System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    ^
    C:\java\Sql\db.java:30: cannot resolve symbol
    symbol : variable variabile3
    location: class db
    System.out.println (variabile1 +" "+ variabile2 +" "+ variabile3);
    ^
    C:\java\Sql\db.java:33: cannot resolve symbol
    symbol : variable con
    location: class db
    con.close();
    ^
    19 errors

    Process completed.

  9. #9
    Se per caso vuoi/puoi possiamo contattarci o su Icq o su Messenger cosi mi chiarisci meglio le idee

    In ogni caso da niubbo quale sono mi sono limitato ad eseguire il più fedelmente possibili le tue istruzioni:

    -come dicevi tu stesso in un altro thread ho scaricato il file mysql-connector-java-3.0.15-ga.zip e l'ho installato nella dovuta directory;

    -Il codice che hai scritto in questo thread l'ho ricopiato nel main;

    -ho ovviamente compilato le variabili tipo user, password ecc;

    Però non va

  10. #10
    Ho creato con l'aiuto di alcune guide online un piccolo codice per la connessione che mi compila per bene:

    codice:
    import java.sql.*;
    
    public class odbc
    {
    	public static void main(String[] args) throws Exception{
    		
    		// Carica i driver JDBC per MySQL
    		Class.forName("com.mysql.jdbc.Driver");
    		
    		Connection conn = DriverManager.getConnection ("jdbc:odbc:miodb", "login", "password");
    		Statement st = conn.createStatement();
    		
    		//inizio a trattare i dati
    		ResultSet rs = st.executeQuery("SELECT col1, col2 FROM table1");
    		
    		while(rs.next())
    		{
    
    			String a = rs.getString("col1");
    			int b = rs.getInt("col2");
    		}
    
    		conn.close();
    		
    			
    	}
    }
    Questa volta però non mi becca invece i Driver. Eppure ho messo il tutto nella cartella giusta.. magari se qualcuno mi spiega per benino come si setta il claspath..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.