С какими технологиями для работы с базами данных вы знакомы?

«С какими технологиями для работы с базами данных вы знакомы?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Реляционные БД (SQL):

  • JDBC: Низкоуровневое API для выполнения SQL-запросов. Использовал с MySQL, PostgreSQL.
    try (Connection conn = DriverManager.getConnection(url, user, pass);
         PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE id=?")) {
        stmt.setLong(1, userId);
        ResultSet rs = stmt.executeQuery();
    }
  • Hibernate/JPA: ORM для объектно-реляционного отображения. Позволяет работать с сущностями вместо прямых SQL-запросов.
    @Entity
    @Table(name = "users")
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
    }
  • Spring Data JPA: Высокоуровневая абстракция над JPA, упрощающая создание репозиториев.
    public interface UserRepository extends JpaRepository<User, Long> {
        List<User> findByName(String name); // Генерация запроса по имени метода
    }
  • MyBatis, JOOQ, QueryDSL: Использовал для сложных SQL-маппингов и типобезопасных запросов.

NoSQL БД:

  • MongoDB: Через Spring Data MongoDB для документо-ориентированного хранения.
  • Redis: Через клиент Jedis или Lettuce для кэширования и работы с ключ-значением.