Prima Stabilire una connessione JDBC in Java (il front-end, ovvero il programma Java e il back-end, ovvero il database) dovremmo imparare cos'è esattamente un JDBC e perché è nato. Ora parliamo di cosa rappresenta esattamente JDBC e lo spiegheremo con l'aiuto di illustrazioni di vita reale per farlo funzionare.
Cos'è JDBC?
JDBC è l'acronimo di Java Database Connectivity. È un progresso per ODBC (Open Database Connectivity). JDBC è una specifica API standard sviluppata per spostare i dati dal front-end al back-end. Questa API è composta da classi e interfacce scritte in Java. Fondamentalmente agisce come un'interfaccia (non quella che usiamo in Java) o un canale tra il programma Java e i database, ovvero stabilisce un collegamento tra i due in modo che un programmatore possa inviare dati dal codice Java e memorizzarli nel database per un uso futuro .
Illustrazione: Funzionamento di JDBC correlato al tempo reale
np.argmax
Perché JDBC è nato?
Come detto in precedenza, JDBC è un progresso per ODBC, essendo ODBC dipendente dalla piattaforma presentava molti inconvenienti. L'API ODBC è stata scritta in C, C++, Python e Core Java e, come sappiamo sopra, i linguaggi (eccetto Java e alcune parti di Python) dipendono dalla piattaforma. Pertanto, per rimuovere la dipendenza, un fornitore di database ha sviluppato JDBC che consisteva in classi e interfacce scritte in Java.
Passaggi per connettere l'applicazione Java al database
Di seguito sono riportati i passaggi che spiegano come connettersi al database in Java:
Passo 1 – Importa i pacchetti
Passo 2 – Caricare i driver utilizzando il file metodo forName()
Passaggio 3 – Registrare i conducenti utilizzando DriverManager
Passaggio 4 – Stabilire una connessione utilizzando l'oggetto della classe Connection
Passaggio 5 – Creare una dichiarazione
Passaggio 6 – Eseguire la query
Passaggio 7 – Chiudere i collegamenti
Connettività del database Java
Discuteremo questi passaggi in breve prima dell'implementazione scrivendo il codice adatto per illustrare i passaggi di connettività per JDBC.
Passo 1: Importa i pacchetti
Passo 2: Caricamento dei driver
Per cominciare, devi prima caricare il driver o registrarlo prima di utilizzarlo nel programma. La registrazione deve essere effettuata una volta nel programma. È possibile registrare un conducente in uno dei due modi indicati di seguito:
2-A Classe.perNome()
Qui carichiamo il file di classe del driver in memoria in fase di runtime. Non è necessario utilizzare oggetti nuovi o creare. L'esempio seguente utilizza Class.forName() per caricare il driver Oracle come mostrato di seguito:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager è una classe integrata Java con un registro dei membri statico. Qui chiamiamo il costruttore della classe driver in fase di compilazione. L'esempio seguente utilizza DriverManager.registerDriver() per registrare il driver Oracle come mostrato di seguito:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Passaggio 3: Stabilire una connessione utilizzando IL Oggetto della classe di connessione
Dopo aver caricato il driver, stabilire le connessioni come mostrato di seguito:
Connection con = DriverManager.getConnection(url,user,password)>
- utente: U sername da cui è possibile accedere al prompt dei comandi SQL.
- parola d'ordine: password da cui è possibile accedere al prompt dei comandi SQL.
- con: È un riferimento all'interfaccia Connection.
- URL : Uniform Resource Locator che viene creato come mostrato di seguito:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Dove Oracle è il database utilizzato, thin è il driver utilizzato, @localhost è l'indirizzo IP in cui è archiviato un database, 1521 è il numero di porta e xe è il fornitore di servizi. Tutti e 3 i parametri sopra indicati sono di tipo String e devono essere dichiarati dal programmatore prima di chiamare la funzione. L'uso di questo può essere fatto riferimento per formare il codice finale.
Passaggio 4: Crea una dichiarazione
Una volta stabilita la connessione è possibile interagire con il database. Le interfacce JDBCStatement, CallableStatement e PreparedStatement definiscono i metodi che consentono di inviare comandi SQL e ricevere dati dal database.
L'uso dell'istruzione JDBC è il seguente:
Statement st = con.createStatement();>
Nota: Qui, con è un riferimento all'interfaccia di connessione utilizzata nel passaggio precedente.
Passaggio 5: Esegui la query
Ora arriva la parte più importante, ovvero l'esecuzione della query. La query qui è una query SQL. Ora sappiamo che possiamo avere più tipi di query. Alcuni di essi sono i seguenti:
conversione della data in stringa
- La query per aggiornare/inserire una tabella in un database.
- La query per il recupero dei dati.
Il metodoexequeQuery() di Interfaccia di dichiarazione viene utilizzato per eseguire query di recupero di valori dal database. Questo metodo restituisce l'oggetto di ResultSet che può essere utilizzato per ottenere tutti i record di una tabella.
Il metodoexecuteUpdate(sql query) dell'interfaccia Statement viene utilizzato per eseguire query di aggiornamento/inserimento.
Pseudo codice:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Qui sql è la query SQL del tipo String:
Java lancia la stringa su int
Giava
// This code is for establishing connection with MySQL> // database and retrieving data> // from db Java Database connectivity> /*> > *1. import --->java.sql> > *2. load and register the driver --->com.jdbc.> > *3. create connection> > *4. create a statement> > *5. execute the query> > *6. process the results> > *7. close> > */> import> java.io.*;> import> java.sql.*;> class> GFG {> > public> static> void> main(String[] args)> throws> Exception> > {> > String url> > => 'jdbc: mysql://localhost:3306/table_name '> ; // table details> > String username => 'rootgfg'> ;> // MySQL credentials> > String password => 'gfg123'> ;> > String query> > => 'select *from students'> ;> // query to be run> > Class.forName(> > 'com.mysql.cj.jdbc.Driver'> );> // Driver name> > Connection con = DriverManager.getConnection(> > url, username, password);> > System.out.println(> > 'Connection Established successfully'> );> > Statement st = con.createStatement();> > ResultSet rs> > = st.executeQuery(query);> // Execute query> > rs.next();> > String name> > = rs.getString(> 'name'> );> // Retrieve name from db> > System.out.println(name);> // Print result on console> > st.close();> // close statement> > con.close();> // close connection> > System.out.println(> 'Connection Closed....'> );> > }> }> |
>
>
Produzione :
Passaggio 6: chiusura delle connessioni
Finalmente abbiamo inviato i dati alla posizione specificata e ora siamo sul punto di completare il nostro compito. Chiudendo la connessione, gli oggetti di Statement e ResultSet verranno chiusi automaticamente. Il metodo close() dell'interfaccia Connection viene utilizzato per chiudere la connessione. Di seguito è mostrato come segue:
con.close();>
Esempio:
Giava
char per stringere java
multiplexer
// Java Program to Establish Connection in JDBC> // Importing database> import> java.sql.*;> // Importing required classes> import> java.util.*;> // Main class> class> Main {> > // Main driver method> > public> static> void> main(String a[])> > {> > // Creating the connection using Oracle DB> > // Note: url syntax is standard, so do grasp> > String url => 'jdbc:oracle:thin:@localhost:1521:xe'> ;> > // Username and password to access DB> > // Custom initialization> > String user => 'system'> ;> > String pass => '12345'> ;> > // Entering the data> > Scanner k => new> Scanner(System.in);> > System.out.println(> 'enter name'> );> > String name = k.next();> > System.out.println(> 'enter roll no'> );> > int> roll = k.nextInt();> > System.out.println(> 'enter class'> );> > String cls = k.next();> > // Inserting data using SQL query> > String sql => 'insert into student1 values(''> + name> > +> '','> + roll +> ',''> + cls +> '')'> ;> > // Connection class object> > Connection con => null> ;> > // Try block to check for exceptions> > try> {> > // Registering drivers> > DriverManager.registerDriver(> > new> oracle.jdbc.OracleDriver());> > // Reference to connection interface> > con = DriverManager.getConnection(url, user,> > pass);> > // Creating a statement> > Statement st = con.createStatement();> > // Executing query> > int> m = st.executeUpdate(sql);> > if> (m ==> 1> )> > System.out.println(> > 'inserted successfully : '> + sql);> > else> > System.out.println(> 'insertion failed'> );> > // Closing the connections> > con.close();> > }> > // Catch block to handle exceptions> > catch> (Exception ex) {> > // Display message when exceptions occurs> > System.err.println(ex);> > }> > }> }> |
>
>
Output dopo l'importazione dei dati nel database: