Inainte de Stabilirea conexiunii JDBC în Java (front-end-ul, adică programul Java și back-end-ul, adică baza de date) ar trebui să aflăm ce este exact un JDBC și de ce a apărut. Acum haideți să discutăm despre ce reprezintă exact JDBC și va ușura cu ajutorul ilustrației din viața reală pentru a-l face să funcționeze.
Ce este JDBC?
JDBC este un acronim pentru Java Database Connectivity. Este un progres pentru ODBC (Open Database Connectivity). JDBC este o specificație API standard dezvoltată pentru a muta datele de la front-end la back-end. Acest API constă din clase și interfețe scrise în Java. Practic acționează ca o interfață (nu cea pe care o folosim în Java) sau canal între programul dvs. Java și bazele de date, adică stabilește o legătură între cele două, astfel încât un programator să poată trimite date din codul Java și să le stocheze în baza de date pentru utilizare ulterioară. .
Ilustrare: Funcționarea JDBC în corelație cu în timp real
De ce a apărut JDBC?
După cum sa spus anterior, JDBC este un progres pentru ODBC, ODBC fiind dependent de platformă a avut o mulțime de dezavantaje. ODBC API a fost scris în C, C++, Python și Core Java și, după cum știm mai sus, limbile (cu excepția Java și a unei părți din Python) sunt dependente de platformă. Prin urmare, pentru a elimina dependența, JDBC a fost dezvoltat de un furnizor de baze de date care consta din clase și interfețe scrise în Java.
Pași pentru a conecta aplicația Java cu baza de date
Mai jos sunt pașii care explică cum să vă conectați la baza de date în Java:
Pasul 1 - Importați pachetele
Pasul 2 – Încărcați driverele folosind metoda forName().
Pasul 3 – Înregistrați șoferii folosind DriverManager
Pasul 4 – Stabiliți o conexiune folosind obiectul clasei Connection
Pasul 5 - Creați o declarație
Pasul 6 – Executați interogarea
Pasul 7 – Închideți conexiunile
Conectivitate la baza de date Java
Să discutăm pe scurt acești pași înainte de implementare prin scrierea unui cod adecvat pentru a ilustra pașii de conectivitate pentru JDBC.
Pasul 1: Importați pachetele
Pasul 2: Încărcarea driverelor
Pentru a începe, mai întâi trebuie să încărcați driverul sau să-l înregistrați înainte de a-l folosi în program. Înregistrarea se face o dată în program. Puteți înregistra un șofer în unul dintre cele două moduri menționate mai jos, după cum urmează:
2-A Class.forName()
Aici încărcăm fișierul clasa driverului în memorie în timpul rulării. Nu este nevoie să folosiți obiecte noi sau să creați. Următorul exemplu utilizează Class.forName() pentru a încărca driverul Oracle, după cum se arată mai jos, după cum urmează:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager este o clasă Java încorporată cu un registru de membri static. Aici numim constructorul clasei de driver la momentul compilarii. Următorul exemplu utilizează DriverManager.registerDriver() pentru a înregistra driverul Oracle, după cum se arată mai jos:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Pasul 3: Stabiliți o conexiune folosind cel Obiectul clasei de conexiune
După încărcarea driverului, stabiliți conexiunile după cum se arată mai jos, după cum urmează:
.06 sub formă de fracție
Connection con = DriverManager.getConnection(url,user,password)>
- utilizator: U sername din care poate fi accesat promptul de comandă SQL.
- parola: parola din care poate fi accesat promptul de comandă SQL.
- cu: Este o referință la interfața Connection.
- Url : Uniform Resource Locator care este creat după cum se arată mai jos:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Acolo unde oracle este baza de date utilizată, subțire este driverul utilizat, @localhost este adresa IP la care este stocată o bază de date, 1521 este numărul portului și xe este furnizorul de servicii. Toți cei 3 parametri de mai sus sunt de tip String și trebuie să fie declarați de programator înainte de a apela funcția. Utilizarea acestuia poate fi referită pentru a forma codul final.
Pasul 4: Creați o declarație
Odată stabilită o conexiune, puteți interacționa cu baza de date. Interfețele JDBCStatement, CallableStatement și PreparedStatement definesc metodele care vă permit să trimiteți comenzi SQL și să primiți date din baza de date.
Utilizarea declarației JDBC este după cum urmează:
Statement st = con.createStatement();>
Notă: Aici, con este o referință la interfața de conectare utilizată în pasul anterior.
Pasul 5: Executați interogarea
Acum vine partea cea mai importantă, adică executarea interogării. Interogarea aici este o interogare SQL. Acum știm că putem avea mai multe tipuri de interogări. Unele dintre ele sunt după cum urmează:
- Interogarea pentru actualizarea/inserarea unui tabel într-o bază de date.
- Interogarea pentru preluarea datelor.
Metoda executeQuery() a Interfață declarație este folosit pentru a executa interogări de preluare a valorilor din baza de date. Această metodă returnează obiectul ResultSet care poate fi folosit pentru a obține toate înregistrările unui tabel.
Metoda executeUpdate(sql query) a interfeței Statement este utilizată pentru a executa interogări de actualizare/inserare.
conversie dată în șir
Pseudo cod:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Aici sql este o interogare SQL de tip String:
Java
// 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....'> );> > }> }> |
>
>
Ieșire :
Pasul 6: Închiderea conexiunilor
Deci, în sfârșit, am trimis datele în locația specificată și acum suntem pe punctul de a ne finaliza sarcina. Prin închiderea conexiunii, obiectele Statement și ResultSet vor fi închise automat. Metoda close() a interfeței Connection este utilizată pentru a închide conexiunea. Este prezentat mai jos după cum urmează:
con.close();>
Exemplu:
Java
concat șiruri de caractere java
// 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);> > }> > }> }> |
>
>
Ieșire după importarea datelor în baza de date: