Ciao, ho un problema poichè il mio programma mi restituisce l'errore in oggetto:
Classe Database:
e il main :codice:package miodb; import java.sql.*; import java.util.Vector; public class Database { private String nomeDB; private String nomeUtente; private String pwdUtente; private String errore; private Connection db; private boolean connesso; public Database(String nomeDB) { this(nomeDB, "", ""); } public Database(String nomeDB, String nomeUtente, String pwdUtente) { this.nomeDB = nomeDB; this.nomeUtente = nomeUtente; this.pwdUtente = pwdUtente; connesso = false; errore = ""; } public boolean connetti() { connesso = false; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); if (!nomeDB.equals("")) { try{ db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=" + nomeUtente + "&password=" + pwdUtente); }catch(SQLException ex){ System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } connesso = true; } else { System.out.println("Manca il nome del database!!"); System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"config.xml\""); System.exit(0); } } catch (Exception e) { errore = e.getMessage(); } return connesso; } public Vector eseguiQuery(String query) { Vector v = null; String [] record; int colonne = 0; try { Statement stmt = db.createStatement(); ResultSet rs = stmt.executeQuery(query); v = new Vector(); ResultSetMetaData rsmd = rs.getMetaData(); colonne = rsmd.getColumnCount(); while(rs.next()) { record = new String[colonne]; for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1); v.add( (String[]) record.clone() ); } rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); } return v; } public boolean eseguiAggiornamento(String query) { int numero = 0; boolean risultato = false; try { Statement stmt = db.createStatement(); numero = stmt.executeUpdate(query); risultato = true; stmt.close(); } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); risultato = false; } return risultato; } public void disconnetti() { try { db.close(); connesso = false; } catch (Exception e) { e.printStackTrace(); } } public boolean isConnesso() { return connesso; } public String getErrore() { return errore; } }
codice:package miodb; import java.sql.*; import java.util.Vector; public class Main{ public static void main(String[] args){ Database db = new Database("nomedb","username",""); if ( !db.connetti() ) { System.out.println("Errore durante la connessione."); System.out.println( db.getErrore() ); System.exit(0); } Vector v = db.eseguiQuery( "SELECT * FROM miatabella;" ); int i = 0; while ( i<v.size() ) { String[] record = (String[]) v.elementAt(i); System.out.println("Record numero " + (i+1) ); for (int j=0; j<record.length; j++) { System.out.println( record[j] ); } } db.disconnetti(); } }
Cosa devo fare?![]()
Grazie.![]()

Rispondi quotando