Ответ
Да, готов. В Java работа с реляционными базами данных обычно ведется через JDBC (Java Database Connectivity) или ORM-фреймворки.
1. Работа на уровне JDBC: Позволяет выполнять нативные SQL-запросы и управлять подключениями.
try (Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/db", "user", "pass");
PreparedStatement stmt = conn.prepareStatement(
"SELECT * FROM users WHERE id = ?")) {
stmt.setInt(1, userId); // Безопасная подстановка параметров
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("username"));
}
} catch (SQLException e) {
e.printStackTrace(); // На практике используйте логгирование
}
Почему PreparedStatement? Он предотвращает SQL-инъекции и повышает производительность за счет кэширования плана запроса.
2. Использование ORM (например, Hibernate/JPA): Позволяет работать с данными как с объектами, минимизируя ручной SQL.
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
// Геттеры и сеттеры
}
// ...
List<User> users = entityManager.createQuery(
"FROM User WHERE username LIKE :name", User.class)
.setParameter("name", "A%")
.getResultList();
Преимущества ORM: повышение производительности разработки, кэширование, независимость от конкретной СУБД (в пределах возможного).