JDBC richiede un driver per ogni tipo di database si connette a , e la produzione e la manutenzione di quel driver è la responsabilità degli sviluppatori del software di database . Nel caso di MySQL , il driver JDBC ufficiale è chiamato MySQL :: Connector /J , e può essere ottenuto gratuitamente dal sito di MySQL . L'autista sarà un file JAR , e questo file deve essere nella Java classpath . La maggior parte di Java IDE gestirà automaticamente per voi se si aggiunge il file del driver come una libreria esterna .
Tutti i comandi necessari per l'interazione con il JDBC dovrebbero essere disponibili tramite l'importazione java.sql . * Al top della classe file.
registrare il driver
Ciò non richiede l'invio di un modulo di registrazione al sole. Questo per dire che Java database dei driver che si sta per essere utilizzare con il JDBC per le query . Si registra il driver con il seguente comando :
driver d = (driver ) Class.forName ( " com.mysql.jdbc.Driver " ) newInstance ();
Il contenuto del . nome del conducente ( com.mysql.jdbc.Driver ) vale solo per MySQL . La stringa esatta necessaria per gli altri driver di database (come PostgreSQL ) sarà diverso.
Se si riceve un java.lang.ClassNotFoundException , questo significa probabilmente che il driver non è sul percorso della classe .
stabilire la connessione
connessioni sono stabilite con il seguente comando :
Connection conn = DriverManager.getConnection ( url , nome utente, password ) ;
Se il database si trova sulla stessa macchina del client Java accedervi, allora "localhost" funziona come un indirizzo nella maggior parte dei casi . Se il numero di porta per il database non è il default per quel pacchetto di database , allora può essere aggiunto all'URL utilizzando i due punti .
Un importante aggiunta è l'identificatore URL. Questo cambierà per i server di database diversi . Tuttavia, per MySQL , il seguente sarebbe valido : String url = " jdbc : mysql ://localhost : 8080 " ;
caso di una connessione a mancare per qualsiasi motivo , un SQLException sarà gettato , e conterrà un messaggio di errore con ulteriori informazioni che è possibile stampare a System.err per il debug .
Timeout Database
E ' importante ricordare che , come la creazione del collegamento , un esiste connessione attiva tra client e server . Tuttavia, molte banche hanno molto stretti requisiti di timeout . E 'importante che la connessione non stabilita finché query sono pronti . Invece di stabilire una connessione e quindi attendere l'input dell'utente per sapere cosa query da eseguire , è meglio stabilire una connessione di prova , scollegare e ricollegare una volta le query sono disponibili .
Esegui query e recuperare i risultati
Per il rilascio di una query , è necessario creare una dichiarazione utilizzando una connessione attiva al database
Statement s = conn.createStatement ( ) . s.executeQuery ( "SELECT * FROM " + tableName ) ;
Per ottenere i risultati , è possibile eseguire immediatamente :
ResultSet rs = s.getResultSet ();
ResultSets
una cosa importante da sapere sul ResultSet è che tirano i dati dal server di una riga alla volta . Il comando precedente inizializza solo un oggetto ResultSet e ottiene alcuni metadati relativi all'oggetto (nome più importante delle colonne e tipi ) . Essa in realtà non recuperare tutti i dati . I dati devono essere tirati fuori da un ResultSet e archiviati in un'altra posizione prima che la connessione venga chiusa , generalmente con un ciclo cercando qualcosa di simile :
dati LinkedList
= new LinkedList (); while ( rs.next ( ) ) { data.add ( rs.getString ( 1) ) ; //Recupera tutti i dati dalla prima colonna }
strette connessioni
maggior parte del tempo , il driver gestire le connessioni di chiusura in sé . Tuttavia, può aiutare a prevenire problemi in seguito , se si chiude sempre in modo esplicito il vostro ResultSet , Statement e connessioni quando si è terminato di utilizzarle
rs.close ( ) . S.close (); Conn.Close ( ) ;
Programmazione © www.354353.com