logo

Vzpostavljanje povezave JDBC v Javi

prej Vzpostavljanje povezave JDBC v Javi (sprednji del, tj. vaš program Java in zadnji del, tj. baza podatkov), se moramo naučiti, kaj točno je JDBC in zakaj je nastal. Zdaj pa razpravljajmo o tem, kaj natančno pomeni JDBC in bomo olajšali delo s pomočjo ilustracije iz resničnega življenja.

Kaj je JDBC?

JDBC je akronim za Java Database Connectivity. To je napredek za ODBC (Odprta povezljivost baze podatkov). JDBC je standardna specifikacija API-ja, razvita za premikanje podatkov iz sprednjega v zadnji del. Ta API je sestavljen iz razredov in vmesnikov, napisanih v Javi. V bistvu deluje kot vmesnik (ne kot tisti, ki ga uporabljamo v Javi) ali kanal med vašim programom Java in bazami podatkov, tj. vzpostavi povezavo med obema, tako da lahko programer pošlje podatke iz kode Jave in jih shrani v bazo podatkov za prihodnjo uporabo .



Ilustracija: Delovanje JDBC v povezavi z realnim časom

realnočasovno_delovanje_JDBC

Zakaj je JDBC nastal?

Kot smo že povedali, je JDBC napredek za ODBC, ker je ODBC odvisen od platforme, je imel veliko pomanjkljivosti. ODBC API je bil napisan v C, C++, Python in Core Java in kot vemo, so zgornji jeziki (razen Jave in nekaterih delov Pythona) odvisni od platforme. Da bi odstranili odvisnost, je JDBC razvil prodajalec baze podatkov, ki je sestavljena iz razredov in vmesnikov, napisanih v Javi.



Koraki za povezovanje aplikacije Java z bazo podatkov

Spodaj so navedeni koraki, ki pojasnjujejo, kako se povezati z zbirko podatkov v Javi:

Korak 1 – Uvozite pakete
2. korak – Naložite gonilnike z uporabo forName() metoda
3. korak – Registrirajte gonilnike z uporabo DriverManagerja
4. korak – Vzpostavite povezavo z uporabo predmeta Connection class
5. korak – Ustvarite izjavo
6. korak – Izvedite poizvedbo
korak 7 – Zaprite povezave

Povezljivost baze podatkov Java

Vzpostavljanje-JDBC-povezave-v-Javi



Na kratko razpravljajmo o teh korakih pred implementacijo s pisanjem ustrezne kode za ponazoritev korakov povezljivosti za JDBC.

Korak 1: Uvozite pakete

2. korak: Nalaganje gonilnikov

Za začetek morate najprej naložiti gonilnik ali ga registrirati, preden ga uporabite v programu. Registracijo je treba opraviti enkrat v vašem programu. Voznika lahko registrirate na enega od spodaj navedenih dveh načinov:

2-A Class.forName()

Tukaj naložimo datoteko gonilnikovega razreda v pomnilnik med izvajanjem. Ni potrebe po uporabi novih ali ustvarjanju predmetov. Naslednji primer uporablja Class.forName() za nalaganje gonilnika Oracle, kot je prikazano spodaj, kot sledi:

Class.forName(oracle.jdbc.driver.OracleDriver);>

2-B DriverManager.registerDriver()

DriverManager je razred, vgrajen v Javo, s statičnim registrom članov. Tukaj pokličemo konstruktor razreda gonilnika v času prevajanja. Naslednji primer uporablja DriverManager.registerDriver() za registracijo gonilnika Oracle, kot je prikazano spodaj:

 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>

3. korak: Vzpostavite povezavo uporabo the Objekt razreda povezave

Po nalaganju gonilnika vzpostavite povezave, kot je prikazano spodaj, kot sledi:

Connection con = DriverManager.getConnection(url,user,password)>
  • uporabnik: U sername, iz katerega je mogoče dostopati do vašega ukaznega poziva SQL.
  • geslo: geslo, s katerim lahko dostopate do ukaznega poziva SQL.
  • z: Je sklic na vmesnik Connection.
  • URL : Enotni iskalnik virov, ki je ustvarjen, kot je prikazano spodaj:
String url = jdbc:oracle:thin:@localhost:1521:xe>

Kjer je oracle uporabljena baza podatkov, thin je uporabljen gonilnik, @localhost je naslov IP, kjer je shranjena baza podatkov, 1521 je številka vrat in xe je ponudnik storitev. Vsi 3 zgornji parametri so tipa String in jih mora programer deklarirati, preden prikliče funkcijo. Uporaba tega se lahko uporabi za oblikovanje končne kode.

4. korak: Ustvari izjavo

Ko je povezava vzpostavljena, lahko komunicirate z bazo podatkov. Vmesniki JDBCStatement, CallableStatement in PreparedStatement definirajo metode, ki vam omogočajo pošiljanje ukazov SQL in prejemanje podatkov iz vaše baze podatkov.
Uporaba izjave JDBC je naslednja:

Statement st = con.createStatement();>

Opomba: Tukaj je con sklic na vmesnik povezave, uporabljen v prejšnjem koraku.

5. korak: Izvedite poizvedbo

Zdaj pride najpomembnejši del, tj. izvedba poizvedbe. Poizvedba tukaj je poizvedba SQL. Zdaj vemo, da imamo lahko več vrst poizvedb. Nekateri od njih so naslednji:

  • Poizvedba za posodobitev/vstavljanje tabele v bazo podatkov.
  • Poizvedba za pridobivanje podatkov.

Metoda executeQuery() za Izjavni vmesnik se uporablja za izvajanje poizvedb za pridobivanje vrednosti iz baze podatkov. Ta metoda vrne objekt ResultSet, ki ga je mogoče uporabiti za pridobitev vseh zapisov tabele.
Metoda executeUpdate(sql query) vmesnika Statement se uporablja za izvajanje poizvedb za posodabljanje/vstavljanje.

Psevdo koda:

int m = st.executeUpdate(sql); if (m==1)  System.out.println('inserted successfully : '+sql); else  System.out.println('insertion failed');>

Tukaj je sql poizvedba SQL tipa String:

Java




razdeljen z nizom 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....'>);> >}> }>

>

>

Izhod :

okno_konzole

6. korak: Zapiranje povezav

Tako smo končno poslali podatke na določeno lokacijo in zdaj smo tik pred dokončanjem naše naloge. Z zapiranjem povezave se objekti Statement in ResultSet samodejno zaprejo. Za zapiranje povezave se uporablja metoda close() vmesnika Connection. Spodaj je prikazano na naslednji način:

 con.close();>

primer:

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);> >}> >}> }>

>

>

Izhod po uvozu podatkov v zbirko podatkov:

izhodni_zaslon_po_uvozu_podatkov