Java, являясь одним из наиболее известных языков программирования, обеспечивает обширную поддержку баз данных. Это помогает нам подключаться к различным базам данных через JDBC (Java Database Connectivity).
Введение в JDBC
JDBC является одним из стандартных Java API для независимой от базы данных связи между языком программирования Java и широким спектром баз данных. Этот API позволяет кодировать операторы запроса доступа на языке структурированных запросов (SQL). Это главным образом включает в себя открытие соединения, создание базы данных SQL, выполнение запросов SQL и затем получение результатов.
JDBC API можно использовать для доступа к табличным данным, хранящимся в любой реляционной базе данных. При этом вы можете обновлять, сохранять, извлекать и удалять данные из баз данных. Это похоже на Open Database Connectivity (ODBC), предоставляемый Microsoft.
Для лучшего понимания работы JDBC давайте углубимся в тему и разберем архитектуру, лежащую в основе Java Database Connectivity.
Общие компоненты JDBC
JDBC API предоставляет следующие интерфейсы и классы —
- DriverManager: в основном используется для управления списком драйверов баз данных. Драйвер, который распознает определенный суб-протокол, будет использоваться для установления соединения с базой данных.
- интерфейс, который управляет связью с сервером базы данных Он также абстрагирует детали, связанные с работой с объектами Driver.
- Соединение — это интерфейс, который состоит из всех методов, необходимых для подключения к базе данных. Объект подключения имеет дело с коммуникационными функциями базы данных. контекст.
Теперь давайте перейдем к следующей теме и рассмотрим шаги, необходимые для создания приложения JDBC.
Шаги по созданию приложения JDBC
Чтобы создать Приложение JDBC, вам нужно выполнить несколько шагов. Давайте посмотрим, что они.

Теперь, когда вы увидели различные этапы создания приложения JDBC, давайте рассмотрим пример кода для создания базы данных и установления соединения.
package Edureka;
import java.sql.*;
import java.sql.DriverManager;
public class Example {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,"root","");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close()
}catch(SQLException se2){
}// nothing can be done
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
} // end Example
Выше кода создает таблицу в вашей базе данных localhost. Чтобы вставить значения в созданную базу данных, вы можете обратиться к приведенному ниже коду. Я буду писать код только для шага 4. Остальная часть кода остается такой же, как указано выше.
//STEP 4: Execute a query
System.out.println("Creating table in given database...");
stmt = conn.createStatement();
String sql = "CREATE TABLE EMPLOYEES " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
System.out.println("Inserting records into the table...");
stmt =conn.createStatement();
String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";
stmt.executeUpdate(sql);
sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";
stmt.executeUpdate(sql);
sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";
stmt.executeUpdate(sql);
System.out.println("Inserted records into the table...");
Так вот, как вы можете установить соединение с базой данных и вставить значения в таблицы. Теперь давайте двигаться дальше и разберемся с различными типами драйверов JDBC
Типы драйверов JDBC
Драйверы JDBC используются для реализации определенных интерфейсов в API JDBC, для взаимодействия с сервером базы данных. По сути, драйвер JDBC выполняет три действия, и они заключаются в следующем:
- Устанавливает соединение с источником данных.
- Он будет отправлять запросы и обновлять операторы в источник данных.
- Наконец, он обрабатывает результаты.
Например, драйверы JDBC помогают открыть соединение с базой данных, чтобы взаимодействовать с ним, отправляя команды SQL или базы данных.
Соединения JDBC
- Импорт пакетов JDBC: добавьте операторы импорта в вашу Java-программу для импорта необходимых классов.
- Зарегистрируйте драйвер JDBC. На этом шаге JVM загружает реализацию требуемого драйвера в память, чтобы он мог выполнять запросы JDBC. Есть 2 подхода для регистрации драйвера.
- Наиболее подходящий подход для регистрации драйвера — использовать метод Java forName() для динамической загрузки файла класса драйвера в память, которая автоматически регистрирует его. Этот метод подходит, поскольку позволяет сделать регистрацию драйвера настраиваемой и переносимой. Посмотрите на приведенный ниже код:
пытаться { Class.forName ( "oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException ex) System.out.println («Ошибка: невозможно загрузить класс драйвера!»); System.exit (1); } - Второй подход, который вы можете использовать для регистрации драйвера — это использование статического метода registerDriver().
пытаться { Драйвер myDriver = новый oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver (myDriver); } catch (ClassNotFoundException ex) { System.out.println («Ошибка: невозможно загрузить класс драйвера!»); System.exit (1); }
- Наиболее подходящий подход для регистрации драйвера — использовать метод Java forName() для динамической загрузки файла класса драйвера в память, которая автоматически регистрирует его. Этот метод подходит, поскольку позволяет сделать регистрацию драйвера настраиваемой и переносимой. Посмотрите на приведенный ниже код:
- Вам следует использовать метод registerDriver(), если вы используете JVM, не совместимую с JDK, например, предоставленную Microsoft. Здесь каждая форма требует URL базы данных.
- Формулировка URL базы данных: Формулировка URL необходима для создания правильно отформатированного адреса, который указывает на базу данных, к которой вы хотите подключиться. После загрузки драйвера вы можете установить соединение, используя метод DriverManager.getConnection(). DriverManager.getConnection() методы являются
- getConnection (String url)
- getConnection (строковый URL, свойства prop)
- getConnection (строковый URL, строковый пользователь, строковый пароль)
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex)
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
try {
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex)
{
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
Вы можете создать соединение, используя URL базы данных, имя пользователя и пароль, а также используя объект свойств.
Наконец, чтобы завершить сеанс работы с базой данных, вам необходимо закрыть все соединения с базой данных. Однако, если вы забудете, сборщик мусора Java закроет соединение, когда очистит устаревшие объекты.
conn.close(); // Used to close the connection
