logo

Nawiązywanie połączenia JDBC w Javie

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

praca_w_JDBC w czasie rzeczywistym

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

Nawiązywanie połączenia-JDBC-w-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 :

okno_konsoli

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:

Output_screen_after_importing_data