Pirms tam JDBC savienojuma izveide Java (priekšējā daļa, t.i., jūsu Java programma un aizmugure, t.i., datu bāze), mums vajadzētu uzzināt, kas tieši ir JDBC un kāpēc tas radās. Tagad apspriedīsim, ko tieši apzīmē JDBC, un tas tiks atvieglots, izmantojot reālās dzīves ilustrācijas, lai tas darbotos.
Kas ir JDBC?
JDBC ir Java datu bāzes savienojamības akronīms. Tas ir ODBC (atvērtās datu bāzes savienojamības) sasniegums. JDBC ir standarta API specifikācija, kas izstrādāta, lai pārvietotu datus no priekšpuses uz aizmuguri. Šī API sastāv no klasēm un saskarnēm, kas rakstītas Java valodā. Tas būtībā darbojas kā interfeiss (nevis tas, ko mēs izmantojam Java) vai kanāls starp jūsu Java programmu un datu bāzēm, t.i., tas izveido saiti starp abām, lai programmētājs varētu nosūtīt datus no Java koda un saglabāt tos datu bāzē turpmākai lietošanai. .
Ilustrācija: JDBC darbs, kas saistīts ar reālo laiku
Kāpēc JDBC pastāv?
Kā jau iepriekš tika teikts, JDBC ir ODBC sasniegums, ODBC, kas ir atkarīgs no platformas, bija daudz trūkumu. ODBC API tika rakstīts C, C++, Python un Core Java, un, kā mēs zinām, iepriekš minētās valodas (izņemot Java un dažas Python daļas) ir atkarīgas no platformas. Tāpēc, lai novērstu atkarību, JDBC izstrādāja datu bāzes pārdevējs, kas sastāvēja no klasēm un saskarnēm, kas rakstītas Java valodā.
Darbības, lai savienotu Java lietojumprogrammu ar datu bāzi
Tālāk ir norādītas darbības, kas izskaidro, kā izveidot savienojumu ar datu bāzi Java:
1. darbība - Importējiet pakotnes
2. darbība – Ielādējiet draiverus, izmantojot forName() metode
3. darbība - Reģistrējiet vadītājus izmantojot DriverManager
4. darbība – Izveidojiet savienojumu izmantojot objektu Connection class
5. darbība - Izveidojiet paziņojumu
6. darbība - Izpildiet vaicājumu
7. darbība – Aizveriet savienojumus
Java datu bāzes savienojamība
Pirms ieviešanas īsi apspriedīsim šīs darbības, rakstot piemērotu kodu, lai ilustrētu JDBC savienojuma darbības.
1. darbība: Importējiet pakotnes
2. darbība: Notiek draiveru ielāde
Lai sāktu, vispirms ir jāielādē draiveris vai jāreģistrē tas, pirms to izmantojat programmā. Reģistrācija ir jāveic vienu reizi jūsu programmā. Jūs varat reģistrēt vadītāju vienā no diviem tālāk minētajiem veidiem:
2-A Class.forName()
Šeit mēs ielādējam draivera klases failu atmiņā izpildlaikā. Nav nepieciešams izmantot jaunus vai izveidot objektus. Šajā piemērā tiek izmantots Class.forName(), lai ielādētu Oracle draiveri, kā parādīts tālāk:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager ir Java iebūvēta klase ar statisku dalībnieku reģistru. Šeit mēs saucam vadītāju klases konstruktoru kompilācijas laikā. Šajā piemērā tiek izmantots DriverManager.registerDriver(), lai reģistrētu Oracle draiveri, kā parādīts tālāk:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
3. darbība: Izveidojiet savienojumu izmantojot uz Savienojuma klases objekts
Pēc draivera ielādes izveidojiet savienojumus, kā parādīts tālāk, kā norādīts tālāk.
Connection con = DriverManager.getConnection(url,user,password)>
- lietotājs: U sername, no kura var piekļūt jūsu SQL komandu uzvednei.
- parole: parole, no kuras var piekļūt SQL komandrindai.
- ar: Tā ir atsauce uz savienojuma saskarni.
- URL : vienots resursu meklētājs, kas izveidots, kā parādīts zemāk:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Ja Oracle ir izmantotā datu bāze, thin ir izmantotais draiveris, @localhost ir IP adrese, kurā tiek glabāta datu bāze, 1521 ir porta numurs un xe ir pakalpojumu sniedzējs. Visi 3 iepriekš minētie parametri ir virknes tipa, un programmētājam tie ir jādeklarē pirms funkcijas izsaukšanas. To var izmantot, lai izveidotu galīgo kodu.
4. darbība: Izveidojiet paziņojumu
Kad savienojums ir izveidots, varat mijiedarboties ar datu bāzi. JDBCStatement, CallableStatement un PreparedStatement saskarnes nosaka metodes, kas ļauj nosūtīt SQL komandas un saņemt datus no datu bāzes.
JDBC paziņojuma izmantošana ir šāda:
Statement st = con.createStatement();>
Piezīme: Šeit con ir atsauce uz savienojuma interfeisu, kas izmantots iepriekšējā darbībā.
5. darbība: Izpildiet vaicājumu
Tagad nāk vissvarīgākā daļa, ti, vaicājuma izpilde. Vaicājums šeit ir SQL vaicājums. Tagad mēs zinām, ka mums var būt vairāku veidu vaicājumi. Daži no tiem ir šādi:
- Vaicājums tabulas atjaunināšanai/ievietošanai datu bāzē.
- Datu izguves vaicājums.
executeQuery() metode Paziņojuma saskarne tiek izmantots, lai izpildītu vaicājumus par vērtību izgūšanu no datu bāzes. Šī metode atgriež ResultSet objektu, ko var izmantot, lai iegūtu visus tabulas ierakstus.
Paziņojuma interfeisa metode executeUpdate(sql query) tiek izmantota, lai izpildītu atjaunināšanas/ievietošanas vaicājumus.
Pseido kods:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Šeit sql ir SQL vaicājums, kura tips ir 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....'> );> > }> }> |
>
>
Izvade :
6. darbība. Savienojumu aizvēršana
Tātad beidzot esam nosūtījuši datus uz norādīto vietu un tagad esam uz sava uzdevuma pabeigšanas robežas. Aizverot savienojumu, paziņojuma un rezultātu kopas objekti tiks aizvērti automātiski. Savienojuma interfeisa metode close() tiek izmantota, lai aizvērtu savienojumu. Tālāk tas ir parādīts šādi:
con.close();>
Piemērs:
Java
git pull izcelsmes meistars
// 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);> > }> > }> }> |
>
>
Izvade pēc datu importēšanas datu bāzē: