Sobes.tech
Junior — Middle
103

Tudna példát mondani olyan helyzetre, amikor előnyösebb közvetlen SQL-lekérdezést használni az ORM vagy más absztrakciós réteg helyett?

Cégeket kérdeztek
МеталлИнвестБанк

Válasz az MI-től

sobes.tech MI

Прямой SQL-запрос предпочтительно использовать в следующих ситуациях:

  • Когда требуется выполнить сложный или специфичный запрос, который сложно или неэффективно выразить через ORM (например, сложные агрегатные функции, оконные функции, специфичные для СУБД конструкции).
  • Для оптимизации производительности, когда ORM генерирует неоптимальный SQL, и нужно вручную написать более эффективный запрос.
  • При работе с большими объемами данных, где важно контролировать точный SQL и индексы.
  • Для выполнения операций, не поддерживаемых ORM, например, вызов хранимых процедур или специфичных команд СУБД.

Пример в Java с использованием JDBC для прямого SQL-запроса:

String sql = "SELECT COUNT(*) FROM orders WHERE status = 'PENDING'";
try (Connection conn = dataSource.getConnection();
     PreparedStatement stmt = conn.prepareStatement(sql);
     ResultSet rs = stmt.executeQuery()) {
    if (rs.next()) {
        int count = rs.getInt(1);
        System.out.println("Pending orders: " + count);
    }
}