Zanim Nawiązywanie połączenia JDBC w Javie (frontend, czyli program Java i back-end, czyli baza danych) powinniśmy dowiedzieć się, czym dokładnie jest JDBC i dlaczego powstał. Omówmy teraz, co dokładnie oznacza JDBC, i wyjaśnimy to za pomocą rzeczywistych ilustracji, aby to zadziałało.
Co to jest JDBC?
JDBC to skrót od Java Database Connectivity. Jest to postęp w zakresie ODBC (Open Database Connectivity). JDBC to standardowa specyfikacja API opracowana w celu przenoszenia danych z frontonu do backendu. To API składa się z klas i interfejsów napisanych w Javie. Zasadniczo działa jako interfejs (nie ten, którego używamy w Javie) lub kanał pomiędzy programem Java a bazami danych, tj. ustanawia łącze między nimi, dzięki czemu programista może wysyłać dane z kodu Java i przechowywać je w bazie danych do wykorzystania w przyszłości .
Ilustracja: Praca JDBC powiązana z czasem rzeczywistym
liczba pierwsza java
Dlaczego JDBC powstało?
Jak wcześniej powiedziano, JDBC stanowi postęp w stosunku do ODBC, ponieważ ODBC jest zależne od platformy, ma wiele wad. Interfejs API ODBC został napisany w językach C, C++, Python i Core Java i jak wiemy powyżej, języki (z wyjątkiem Java i niektórych części Pythona) są zależne od platformy. Dlatego też, aby usunąć zależność, dostawca baz danych opracował JDBC, który składał się z klas i interfejsów napisanych w Javie.
Kroki łączenia aplikacji Java z bazą danych
Poniżej znajdują się kroki wyjaśniające, jak połączyć się z bazą danych w Javie:
Krok 1 – Zaimportuj pakiety
Krok 2 – Załaduj sterowniki za pomocą pliku metoda forName().
Krok 3 – Zarejestruj sterowniki za pomocą DriverManagera
Krok 4 – Nawiąż połączenie za pomocą obiektu klasy Connection
Krok 5 – Utwórz oświadczenie
Krok 6 – Wykonaj zapytanie
Krok 7 – Zamknąć połączenia
Łączność z bazą danych Java
Omówmy pokrótce te kroki przed wdrożeniem, pisząc odpowiedni kod ilustrujący kroki łączności dla JDBC.
Krok 1: Zaimportuj pakiety
Krok 2: Ładowanie sterowników
Na początek należy najpierw załadować sterownik lub zarejestrować go przed użyciem go w programie. Rejestracji należy dokonać jednorazowo w swoim programie. Możesz zarejestrować kierowcę na jeden z dwóch sposobów wymienionych poniżej:
2-A Klasa.dlaNazwy()
Tutaj ładujemy plik klasy sterownika do pamięci w czasie wykonywania. Nie ma potrzeby używania nowych ani tworzenia obiektów. Poniższy przykład wykorzystuje funkcję Class.forName() do załadowania sterownika Oracle, jak pokazano poniżej:
Class.forName(oracle.jdbc.driver.OracleDriver);>
2-B DriverManager.registerDriver()
DriverManager to wbudowana klasa Java ze statycznym rejestrem członkowskim. Tutaj wywołujemy konstruktora klasy sterownika w czasie kompilacji. Poniższy przykład wykorzystuje DriverManager.registerDriver() do zarejestrowania sterownika Oracle, jak pokazano poniżej:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>
Krok 3: Nawiąż połączenie za pomocą the Obiekt klasy połączenia
Po załadowaniu sterownika nawiąż połączenia w sposób pokazany poniżej:
Connection con = DriverManager.getConnection(url,user,password)>
- użytkownik: U nazwa_serwera, z której można uzyskać dostęp do wiersza poleceń SQL.
- hasło: hasło, za pomocą którego można uzyskać dostęp do wiersza poleceń SQL.
- z: Jest to odniesienie do interfejsu Connection.
- Adres URL : Uniform Resource Locator utworzony w sposób pokazany poniżej:
String url = jdbc:oracle:thin:@localhost:1521:xe>
Tam, gdzie Oracle to używana baza danych, cienki to używany sterownik, @localhost to adres IP, pod którym przechowywana jest baza danych, 1521 to numer portu, a xe to dostawca usług. Wszystkie 3 powyższe parametry są typu String i muszą zostać zadeklarowane przez programistę przed wywołaniem funkcji. Użycie tego można określić jako ostateczny kod.
Krok 4: Utwórz oświadczenie
Po nawiązaniu połączenia możesz wchodzić w interakcję z bazą danych. Interfejsy JDBCStatement, CallableStatement i PreparedStatement definiują metody umożliwiające wysyłanie poleceń SQL i odbieranie danych z bazy danych.
Sposób użycia instrukcji JDBC jest następujący:
Statement st = con.createStatement();>
Notatka: Tutaj con jest odniesieniem do interfejsu połączenia użytego w poprzednim kroku.
Krok 5: Wykonaj zapytanie
Teraz następuje najważniejsza część, czyli wykonanie zapytania. Zapytanie w tym przypadku jest zapytaniem SQL. Teraz wiemy, że możemy mieć wiele typów zapytań. Niektóre z nich są następujące:
- Zapytanie o aktualizację/wstawienie tabeli do bazy danych.
- Zapytanie o pobranie danych.
Metoda wykonywaniaQuery() platformy Interfejs instrukcji służy do wykonywania zapytań o pobranie wartości z bazy danych. Ta metoda zwraca obiekt ResultSet, którego można użyć do pobrania wszystkich rekordów tabeli.
Metoda generateUpdate(sql query) interfejsu Statement służy do wykonywania zapytań dotyczących aktualizacji/wstawiania.
Pseudo kod:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed');>
Tutaj sql to zapytanie SQL typu String:
Jawa
znak na ciąg 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....'> );> > }> }> |
>
>
Wyjście :
Krok 6: Zamknięcie połączeń
W końcu wysłaliśmy dane we wskazane miejsce i jesteśmy już o krok od wykonania naszego zadania. Zamknięcie połączenia spowoduje automatyczne zamknięcie obiektów Statement i ResultSet. Do zamknięcia połączenia używana jest metoda close() interfejsu Connection. Poniżej pokazano to w następujący sposób:
con.close();>
Przykład:
Jawa
formatowanie ciągu 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);> > }> > }> }> |
>
>
Dane wyjściowe po zaimportowaniu danych do bazy danych: