logo

JDBC ryšio užmezgimas Java

Prieš JDBC ryšio užmezgimas Java (priekinė dalis, t. y. jūsų „Java“ programa ir galinė dalis, ty duomenų bazė), turėtume sužinoti, kas tiksliai yra JDBC ir kodėl jis atsirado. Dabar aptarkime, ką tiksliai reiškia JDBC, ir tai palengvins realios iliustracijos pagalba, kad ji veiktų.

Kas yra JDBC?

JDBC yra Java Database Connectivity akronimas. Tai yra ODBC (atvirosios duomenų bazės ryšio) pažanga. JDBC yra standartinė API specifikacija, sukurta siekiant perkelti duomenis iš priekinės dalies į galinį. Šią API sudaro klasės ir sąsajos, parašytos Java kalba. Jis iš esmės veikia kaip sąsaja (ne ta, kurią naudojame Java) arba kanalas tarp jūsų Java programos ir duomenų bazių, t. y. sukuria ryšį tarp jų, kad programuotojas galėtų siųsti duomenis iš Java kodo ir saugoti juos duomenų bazėje ateityje. .



terminalas kali linux

Iliustracija: JDBC darbas kartu su realiuoju laiku

realaus laiko_darbas_JDBC

Kodėl atsirado JDBC?

Kaip anksčiau buvo pasakyta, JDBC yra ODBC pažanga, ODBC priklausymas nuo platformos turėjo daug trūkumų. ODBC API buvo parašyta C, C++, Python ir Core Java kalbomis ir, kaip žinome aukščiau, kalbos (išskyrus Java ir kai kurias Python dalis) priklauso nuo platformos. Todėl, siekiant pašalinti priklausomybę, JDBC sukūrė duomenų bazės pardavėjas, kurį sudarė klasės ir sąsajos, parašytos Java kalba.



„Java“ programos su duomenų baze prijungimo veiksmai

Toliau pateikiami veiksmai, paaiškinantys, kaip prisijungti prie duomenų bazės „Java“:

1 žingsnis - Importuokite paketus
2 žingsnis – Įkelkite tvarkykles naudodami forName() metodas
3 veiksmas – Užregistruokite vairuotojus naudojant DriverManager
4 veiksmas – Užmegzti ryšį naudojant objektą Ryšio klasė
5 veiksmas – Sukurkite pareiškimą
6 veiksmas – Vykdykite užklausą
7 veiksmas – Uždarykite jungtis

„Java“ duomenų bazės ryšys

„JDBC“ ryšio „Java“ nustatymas



Trumpai aptarkime šiuos veiksmus prieš įgyvendindami parašydami tinkamą kodą, iliustruojantį JDBC ryšio veiksmus.

1 žingsnis: Importuokite paketus

2 žingsnis: Įkeliami tvarkyklės

Norėdami pradėti, pirmiausia turite įkelti tvarkyklę arba užregistruoti ją prieš naudodami programoje. Registracija turi būti atlikta vieną kartą jūsų programoje. Galite užregistruoti vairuotoją vienu iš dviejų toliau nurodytų būdų:

2-A Class.forName()

Čia mes įkeliame vairuotojo klasės failą į atmintį vykdymo metu. Nereikia naudoti naujų ar kurti objektų. Toliau pateiktame pavyzdyje naudojama Class.forName() Oracle tvarkyklei įkelti, kaip parodyta toliau:

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

2-B DriverManager.registerVairuotojas()

„DriverManager“ yra „Java“ integruota klasė su statiniu narių registru. Čia mes vadiname vairuotojų klasės konstruktorių kompiliavimo metu. Toliau pateiktame pavyzdyje naudojama DriverManager.registerDriver() „Oracle“ tvarkyklei užregistruoti, kaip parodyta toliau:

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

3 veiksmas: Užmegzkite ryšį naudojant į Ryšio klasės objektas

Įkėlę tvarkyklę, užmegzkite ryšius, kaip parodyta toliau taip:

Connection con = DriverManager.getConnection(url,user,password)>
  • vartotojas: U sername, iš kurio galima pasiekti SQL komandų eilutę.
  • Slaptažodis: slaptažodį, iš kurio galima pasiekti SQL komandų eilutę.
  • su: Tai nuoroda į ryšio sąsają.
  • URL : vienodas išteklių lokatorius, sukurtas taip, kaip parodyta toliau:
String url = jdbc:oracle:thin:@localhost:1521:xe>

Kai naudojama „Oracle“ duomenų bazė, „thin“ yra naudojama tvarkyklė, @localhost yra IP adresas, kuriame saugoma duomenų bazė, 1521 yra prievado numeris, o xe yra paslaugų teikėjas. Visi 3 aukščiau nurodyti parametrai yra eilutės tipo ir juos turi deklaruoti programuotojas prieš iškviesdamas funkciją. Tai gali būti naudojama formuojant galutinį kodą.

4 veiksmas: Sukurkite pareiškimą

Užmezgę ryšį galite bendrauti su duomenų baze. JDBCStatement, CallableStatement ir PreparedStatement sąsajos apibrėžia metodus, leidžiančius siųsti SQL komandas ir gauti duomenis iš duomenų bazės.
JDBC pareiškimas naudojamas taip:

Statement st = con.createStatement();>

Pastaba: Čia con yra nuoroda į ryšio sąsają, naudotą ankstesniame veiksme.

5 veiksmas: Vykdykite užklausą

Dabar ateina pati svarbiausia dalis, ty užklausos vykdymas. Užklausa čia yra SQL užklausa. Dabar žinome, kad galime turėti kelių tipų užklausas. Kai kurie iš jų yra tokie:

s python
  • Lentelės atnaujinimo/įterpimo į duomenų bazę užklausa.
  • Duomenų gavimo užklausa.

executeQuery() metodas Pareiškimo sąsaja naudojamas reikšmių gavimo iš duomenų bazės užklausoms vykdyti. Šis metodas grąžina ResultSet objektą, kurį galima naudoti norint gauti visus lentelės įrašus.
Atnaujinimo/įterpimo užklausoms vykdyti naudojamas pareiškimo sąsajos metodas executeUpdate(sql query).

Pseudo kodas:

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

Čia sql yra eilutės tipo SQL užklausa:

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

>

>

Išvestis :

konsolės_langas

sujungimo rūšiavimo algoritmas

6 veiksmas: uždarykite jungtis

Taigi pagaliau išsiuntėme duomenis į nurodytą vietą ir dabar esame ties savo užduoties įvykdymo riba. Uždarius ryšį, pareiškimo ir rezultatų rinkinio objektai bus uždaryti automatiškai. Ryšiui uždaryti naudojamas „Connection“ sąsajos metodas close(). Žemiau jis parodytas taip:

 con.close();>

Pavyzdys:

Java

string to char




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

>

>

Išvestis importavus duomenis į duomenų bazę:

output_screen_after_importing_data