English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dopo aver installato il driver appropriato, puoi stabilire una connessione al database utilizzando JDBC.
Il codice di programmazione coinvolto nella creazione di una connessione JDBC è molto semplice. Questi sono questi semplici quattro passaggi-
Importare il pacchetto JDBC:Aggiungi la dichiarazione alla tua applicazione Java import, per importare le classi necessarie nel codice Java.
Registrare il driver JDBC: Questo passaggio fa sì che il JVM carichi l'implementazione del driver richiesto nella memoria, soddisfacendo le tue richieste JDBC.
Configurazione URL del database: Questo è per creare un indirizzo corretto che punti al database che desideri connetterti.
Stabilire l'oggetto di connessione:Infine, scrivi il codice perDriverManagerOggettogetConnection()Il codice di chiamata del metodo per stabilire una connessione effettiva al database.
Le istruzioni di importazione informano il compilatore Java su dove trovare le classi richiamate nel codice e sono collocate all'inizio del codice sorgente.
Per utilizzare il pacchetto JDBC standard (che ti permette di selezionare, inserire, aggiornare e eliminare dati da tabelle SQL), aggiungi il seguente import alla tua sorgente
import java.sql.*; // Utilizzato per programmi JDBC standard import java.math.*; // Ottenere il supporto BigDecimal e BigInteger
在使用驱动程序之前,必须在程序中注册该驱动程序。注册驱动程序是将 Oracle 驱动程序的类文件加载到内存中的过程,因此可以将其用作 JDBC 接口的实现。
你只需要在你的程序中注册一次。您可以通过以下两种方式之一注册驱动程序。
注册驱动程序的最常见方法是使用Java的 Class.forName() 方法,将驱动程序的类文件动态加载到内存中,内存会自动进行注册。此方法是可取的,因为它使您可以使驱动程序注册成为可配置和可移植的。
以下示例 Class.forName( ) 用于注册Oracle驱动程序
try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(ClassNotFoundException ex) { System.out.println("Error: impossibile caricare la classe del driver!"); System.exit(1); }
您可以使用getInstance()方法来解决不兼容的JVM,但是随后您必须编写两个额外的Exception的代码,如下所示:
try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); } catch(ClassNotFoundException ex) { System.out.println("错误:无法加载驱动程序类!"); System.exit(1); catch(IllegalAccessException ex) { System.out.println("错误:加载时出现访问问题!"); System.exit(2); catch(InstantiationException ex) { System.out.println("错误:无法实例化驱动程序!"); System.exit(3); }
您可以用来注册驱动程序的第二种方法是使用静态方法 DriverManager.registerDriver() .
如果使用的是不兼容JDK的JVM(例如Microsoft提供的JVM),则应使用 registerDriver() 方法。
以下示例用于registerDriver()注册Oracle驱动程序-
try { Driver myDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver(myDriver); } catch(ClassNotFoundException ex) { System.out.println("Error: impossibile caricare la classe del driver!"); System.exit(1); }
Dopo aver caricato il driver, è possibile stabilire la connessione utilizzando il metodo DriverManager.getConnection(). Per facilitare la consultazione, elencherò le tre overload di DriverManager.getConnection()
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
In questo caso, ogni forma richiede un databaseURL。L'URL del database è l'indirizzo che punta al suo database.
La definizione dell'URL del database è il punto in cui si verificano la maggior parte dei problemi relativi alla connessione.
La tabella seguente elenca i nomi dei driver JDBC comuni e gli URL delle database.
Database | Nome del driver JDBC | 格式 dell'URL |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname/databaseName |
ORACLE | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname: numero di porta:databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname: numero di porta/databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: numero di porta/databaseName |
URL格式中所有突出显示的部分都是静态的,您只需要根据数据库设置更改其余部分。
我们列出了三种 DriverManager.getConnection() Il metodo per creare l'oggetto connessione.
La forma più comune di getConnection() richiede di passare l'URL del databaseNome utenteePassword
Supponiamo che stiate utilizzando OraclethinIl driver specifica il valore host:port:databaseName per la parte database dell'URL.
Se avete un host con l'indirizzo TCP / IP 192.0.0.1, il cui nome host è amrood, e il vostro listener Oracle è configurato per la porta 1521, e il nome del vostro database è EMP, l'URL completo del database sarà-
jdbc:oracle:thin:@amrood:1521:EMP
Ora, è necessario utilizzare il nome utente e la password corretti per chiamare il metodo getConnection() per ottenereConnectionOggetto, come segue:
String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; String USER = "username"; String PASS = "password" Connection conn = DriverManager.getConnection(URL, USER, PASS);
La seconda forma del metodo getConnection() di DriverManager richiede solo l'URL del database-
DriverManager.getConnection(String url);
Ma in questo caso, l'URL del database contiene il nome utente e la password e ha la seguente forma standard-
jdbc:oracle:driver:username/password@database
Di conseguenza, è possibile creare la connessione sopra menzionata come segue-
String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP"; Connection conn = DriverManager.getConnection(URL);
La terza forma del metodo getConnection() di DriverManager richiede l'URL del database e l'oggetto Properties-
DriverManager.getConnection(String url, Properties info);
L'oggetto proprietà contiene un insieme di coppie chiave-valore. Serve per passare le proprietà del driver all'interno del metodo getConnection() durante la chiamata.
Per stabilire una connessione come nell'esempio precedente, utilizzare il seguente codice -
import java.util.*; String URL = "jdbc:oracle:thin:@amrood:1521:EMP"; Properties info = new Properties(); info.put("user", "username"); info.put("password", "password"); Connection conn = DriverManager.getConnection(URL, info);
Alla fine del programma JDBC, è richiesto chiudere esplicitamente tutte le connessioni con il database per terminare ogni sessione di database. Tuttavia, se dimentichi, il raccolitore dei rifiuti Java chiuderà la connessione durante la pulizia degli oggetti obsoleti.
Contare sul riciclaggio dei rifiuti, in particolare nel programming database, è una pessima pratica di programmazione. Dovresti abituarti a utilizzare sempre il metodo close() associato all'oggetto di connessione per chiudere la connessione al database.
Per assicurarti di chiudere la connessione, puoi fornire un blocco 'finally' nel codice.finallyIl blocco viene sempre eseguito, indipendentemente dall'insorgere o meno di un'eccezione.
Per chiudere la connessione aperta sopra, dovresti chiamare il metodo close() nel modo seguente:
conn.close();
Chiudere esplicitamente la connessione può risparmiare risorse del DBMS, il che renderà soddisfatto il tuo amministratore di database.
Per una migliore comprensione, si consiglia di studiare教程 di esempio JDBC.