Закрытие соединения с базой данных и связанных ресурсов (таких как
ResultSet и Statement) важно для освобождения ресурсов и предотвращения утечек памяти.🚩Этапы закрытия соединения
1⃣Закрытие
ResultSetinterface IRepository {
doSomething(): void;
}
class Repository implements IRepository {
doSomething() {
console.log("Doing something...");
}
}
class Service {
private repository: IRepository;
constructor(repository: IRepository) {
this.repository = repository;
}
performAction() {
this.repository.doSomething();
}
}
const repository = new Repository();
const service = new Service(repository);
service.performAction();2⃣Закрытие
Statement или PreparedStatementif (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}3⃣Закрытие
Connectionif (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}🚩Полный пример кода
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class CloseConnectionExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "myusername";
String password = "mypassword";
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// Установка соединения с базой данных
connection = DriverManager.getConnection(url, username, password);
// Создание PreparedStatement и выполнение запроса
String sql = "SELECT * FROM employees WHERE department = ?";
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "HR");
rs = pstmt.executeQuery();
// Обработка результатов
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
double salary = rs.getDouble("salary");
System.out.println("ID: " + id + ", Name: " + name + ", Salary: " + salary);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Закрытие ресурсов
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
Ставь 👍 и забирай 📚 Базу знаний