В этом примере мы будем редактировать данные таблицы в базе данных (далее – БД) с помощью технологии JDBC.
Для этого нам необходимо:
- Импортировать пакет java.sql.*
- Зарегистрировать JDBC драйвер
- Открыть соединение
- Выполнить запрос
- Освободить ресурсы
Для понимания того, как это работает на практике, рассмотрим пример простого приложения.
Пример:
import java.sql.*;
public class UpdateTableJdbc {
static final String DATABASE_URL = "jdbc:mysql://localhost/PROSELYTE_JDBC_DB";
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String USER = "ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ";
static final String PASSWORD = "ВАШ_ПАРОЛЬ";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Connection connection = null;
Statement statement = null;
try {
System.out.println("Registering JDBC driver...");
Class.forName(JDBC_DRIVER);
System.out.println("Creating connection to database...");
connection = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
System.out.println("Getting records...");
statement = connection.createStatement();
String SQL = "SELECT * FROM developers";
ResultSet resultSet = statement.executeQuery(SQL);
while (resultSet.next()){
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
String specialty = resultSet.getString(3);
int salary = resultSet.getInt(4);
System.out.println("id: " + id);
System.out.println("Name: " + name);
System.out.println("Specialty: " + specialty);
System.out.println("Salary: " + salary);
System.out.println("===================\n");
System.out.println("\n***********************************\n");
}
System.out.println("Increasing salary for all developers (+ $500)");
System.out.println("Getting updated records...");
resultSet = statement.executeQuery(SQL);
while (resultSet.next()) {
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
String specialty = resultSet.getString(3);
int salary = resultSet.getInt(4) + 500;
System.out.println("id: " + id);
System.out.println("Name: " + name);
System.out.println("Specialty: " + specialty);
System.out.println("Salary: " + salary);
System.out.println("===================\n");
}
} finally {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
}
}
В результате работы программы мы получим следующий результат:
/*Some System Messages*/
Registering JDBC driver...
Creating connection to database...
Getting records...
id: 1
Name: Proselyte
Specialty: Java
Salary: 3000
===================
***********************************
id: 2
Name: AsyaSmile
Specialty: UI/UX
Salary: 2000
===================
***********************************
id: 3
Name: Peter
Specialty: C++
Salary: 3500
===================
***********************************
Increasing salary for all developers (+ $500)
Getting updated records...
id: 1
Name: Proselyte
Specialty: Java
Salary: 3500
===================
id: 2
Name: AsyaSmile
Specialty: UI/UX
Salary: 2500
===================
id: 3
Name: Peter
Specialty: C++
Salary: 4000
===================