Встановлення підключення JDBC в Java
Раніше Встановлення підключення JDBC в Java (передній кінець, тобто ваша програма Java, і бек-енд, тобто база даних), ми повинні дізнатися, що саме таке JDBC і чому він виник. Тепер давайте обговоримо, що саме означає JDBC, і пояснимо це за допомогою реальних ілюстрацій, щоб це запрацювало.
Що таке JDBC?
JDBC це абревіатура від Java Database Connectivity. Це вдосконалення ODBC (відкрите підключення до бази даних). JDBC — це стандартна специфікація API, розроблена для переміщення даних із інтерфейсу на сервер. Цей API складається з класів та інтерфейсів, написаних мовою Java. В основному він діє як інтерфейс (не той, який ми використовуємо в Java) або канал між вашою програмою Java і базами даних, тобто він встановлює зв’язок між ними, щоб програміст міг надсилати дані з коду Java і зберігати їх у базі даних для подальшого використання .
Ілюстрація: Робота JDBC у співвідношенні з реальним часом
Чому JDBC виник?
Як було сказано раніше, JDBC є прогресом для ODBC, залежність від платформи ODBC має багато недоліків. ODBC API було написано мовами C, C++, Python і Core Java, і, як ми знаємо, вищезазначені мови (окрім Java і деякої частини Python) залежать від платформи. Тому, щоб усунути залежність, JDBC був розроблений постачальником бази даних, яка складалася з класів та інтерфейсів, написаних на Java.
Кроки для підключення програми Java до бази даних
Нижче наведено кроки, які пояснюють, як підключитися до бази даних у Java:
Крок 1 – Імпортуйте пакети
Крок 2 – Завантажте драйвери за допомогою метод forName().
Крок 3 – Зареєструйте драйвери за допомогою DriverManager
Крок 4 – Встановити зв’язок за допомогою об’єкта класу Connection
Крок 5 – Створіть заяву
Крок 6 – Виконайте запит
Крок 7 – Закрийте з’єднання
Підключення до бази даних Java
Давайте коротко обговоримо ці кроки перед реалізацією, написавши відповідний код для ілюстрації кроків підключення для JDBC.
Крок 1: Імпортуйте пакети
крок 2: Завантаження драйверів
Для початку вам спочатку потрібно завантажити драйвер або зареєструвати його перед використанням у програмі. Реєстрацію потрібно зробити один раз у вашій програмі. Ви можете зареєструвати драйвер одним із двох способів, зазначених нижче:
2-А Class.forName()
Тут ми завантажуємо файл класу драйвера в пам’ять під час виконання. Немає необхідності використовувати нові або створювати об'єкти. У наступному прикладі використовується Class.forName() для завантаження драйвера Oracle, як показано нижче:
Class.forName(oracle.jdbc.driver.OracleDriver);
2-Б DriverManager.registerDriver()
DriverManager — це вбудований клас Java зі статичним реєстром учасників. Тут ми викликаємо конструктор класу драйвера під час компіляції. У наступному прикладі використовується DriverManager.registerDriver() для реєстрації драйвера Oracle, як показано нижче:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())
крок 3: Встановити з'єднання використовуючи в Об'єкт класу підключення
Після завантаження драйвера встановіть підключення, як показано нижче:
Connection con = DriverManager.getConnection(url,user,password)
- користувач: U sername, з якого можна отримати доступ до командного рядка SQL.
- пароль: пароль, за допомогою якого можна отримати доступ до командного рядка SQL.
- з: Це посилання на інтерфейс Connection.
- Url : Уніфікований покажчик ресурсів, який створюється, як показано нижче:
String url = jdbc:oracle:thin:@localhost:1521:xe
Якщо Oracle — це база даних, thin — це драйвер, @localhost — це IP-адреса, де зберігається база даних, 1521 — це номер порту, а xe — це постачальник послуг. Усі 3 параметри вище мають тип String і повинні бути оголошені програмістом перед викликом функції. Використання цього можна використати для формування остаточного коду.
крок 4: Створіть заяву
Після встановлення з’єднання ви можете взаємодіяти з базою даних. Інтерфейси JDBCStatement, CallableStatement і PreparedStatement визначають методи, які дозволяють надсилати команди SQL і отримувати дані з вашої бази даних.
Використання оператора JDBC виглядає наступним чином:
Statement st = con.createStatement();
Примітка: Тут con є посиланням на інтерфейс підключення, використаний у попередньому кроці.
крок 5: Виконайте запит
Тепер настає найважливіша частина, тобто виконання запиту. Запит тут є запитом SQL. Тепер ми знаємо, що можемо мати декілька типів запитів. Деякі з них такі:
- Запит на оновлення/вставлення таблиці в базу даних.
- Запит на отримання даних.
Метод executeQuery() для Інтерфейс оператора використовується для виконання запитів на отримання значень з бази даних. Цей метод повертає об’єкт ResultSet, який можна використовувати для отримання всіх записів таблиці.
Метод executeUpdate(sql query) інтерфейсу Statement використовується для виконання запитів на оновлення/вставлення.
Псевдокод:
int m = st.executeUpdate(sql); if (m==1) System.out.println('inserted successfully : '+sql); else System.out.println('insertion failed'); Тут sql - це SQL-запит типу 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....'> );> > }> }> |
Вихід :
Крок 6: Закриття з’єднань
Отже, нарешті ми надіслали дані у вказане місце, і тепер ми на порозі завершення нашого завдання. Після закриття з’єднання об’єкти Statement і ResultSet будуть закриті автоматично. Метод close() інтерфейсу Connection використовується для закриття з’єднання. Це показано нижче таким чином:
con.close();
приклад:
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);> > }> > }> }> |
Вихід після імпорту даних у базу даних: