ghhh... quindi come adatto il codice per forzare il jdbc ???
questa è la classe che uso ( tra l'altro è la tua ed è sempre andata da dio !!! )...
codice:public class SqlHelper { LogFile logErrori = new LogFile("log\\erroriConsole.log"); // INIZIALIZZO VARIABILI private String nomeDSN; // Nome DSN dell'origine dati ODBC private String[][] attributi; // Insieme di attributi da usare per la connessione private String errore; // Stringa contenente un eventuale messaggio di errore private Connection db; // Oggetto che rappresenta la connessione col DB private boolean connesso; // Flag che indica se il DB è connesso o meno // COSTRUTTORE PASSANDO SOLO IL DSN public SqlHelper(String nomeDSN) { this.nomeDSN = nomeDSN; attributi = new String[0][0]; connesso = false; } // COSTRUTTORE PASSANDO DSN E ATTRIBUTI public SqlHelper(String nomeDSN, String [][] attributi) { this.nomeDSN = nomeDSN; this.attributi = attributi; connesso = false; } // FUNZIONE PER CONNETTERSI AL DATABASE public boolean connetti() { connesso = false; String conString = ""; try { // Carico il bridge JDBC-ODBC per la connessione con il database System.out.println("Carico il bridge JDBC-ODBC"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Preparo la stringa di connessione") ; conString = "jdbc:odbc:" + nomeDSN; // Il nome del DSN può anche essere vuoto!! System.out.println("Stringa di connessione = " + conString) ; // Controllo se ci sono attributi ausiliari da usare per la connessione if (attributi.length > 0) { // Uso gli attributi per la connessione for (int i=0; i<attributi.length; i++) { conString += ";" + attributi[i][0] + "=" + attributi[i][1]; } } // Effettuo la connessione System.out.println("Tentativo di connnessione"); db = DriverManager.getConnection( conString ); // La connessione è avvenuta con successo System.out.println("Connnessione db effettuata con successo"); connesso = true; } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); // SCRITTURA LOG try { logErrori.log("Errore : SqlHelper.connetti()",e.getMessage()+ " " + conString); } catch (IOException e1) { e1.printStackTrace(); } } return connesso; } // Esegue una query di selezione dati sul Database // ritorna un Vector contenente tutte le tuple del risultato public Vector eseguiQuery(String query) { Vector v = null; String [] record; int colonne = 0; try { Statement stmt = db.createStatement(); // Creo lo Statement per l'esecuzione della query ResultSet rs = stmt.executeQuery(query); // Ottengo il ResultSet dell'esecuzione della query v = new Vector(); ResultSetMetaData rsmd = rs.getMetaData(); colonne = rsmd.getColumnCount(); while(rs.next()) { // Creo il vettore risultato scorrendo tutto il ResultSet record = new String[colonne]; for (int i=0; i<colonne; i++){ record[i] = rs.getString(i+1); } v.add( (String[]) record.clone() ); } rs.close(); // Chiudo il ResultSet stmt.close(); // Chiudo lo Statement } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); // SCRITTURA LOG try { logErrori.log("Errore : SqlHelper.eseguiQuery()",query + "\n" + e.getMessage()); } catch (IOException e1) { e1.printStackTrace(); } } return v; } // Esegue una query di aggiornamento sul Database ( INSERT, UPDATE, DELETE ) // ritorna TRUE se l'esecuzione è adata a buon fine, FALSE se c'è stata un'eccezione public boolean eseguiAggiornamento(String query) { int numero = 0; boolean risultato = false; try { Statement stmt = db.createStatement(); System.out.println(query); numero = stmt.executeUpdate(query); risultato = true; stmt.close(); } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); risultato = false; // SCRITTURA LOG try { logErrori.log("Errore : SqlHelper.eseguiAggiornamento()",query + "\n" + e.getMessage()); } catch (IOException e1) { e1.printStackTrace(); } } return risultato; } // Chiude la connessione con il Database public void disconnetti() { try { System.out.println("Diconnnessione in corso"); db.close(); connesso = false; System.out.println("Diconnnessione effettuata correttamente"); } catch (Exception e) { e.printStackTrace(); // SCRITTURA LOG try { logErrori.log("Errore : SqlHelper.disconnetti()",e.getMessage()); } catch (IOException e1) { e1.printStackTrace(); } } } // Ritorna TRUE se la connessione con il Database è attiva public boolean isConnesso() { return connesso; } // Ritorna il messaggio d'errore dell'ultima eccezione sollevata public String getErrore(){ return errore; } // Funzione per pulizia stringa public String getStringa(String stringa) { if (stringa == "" || stringa==null) { return "NULL"; } else { String nuovaStringa = stringa.replace('|', '-'); return nuovaStringa.replaceAll("'", "''"); } } }


Rispondi quotando