Рубрики
Без рубрики

Сложное программирование SQL на Java

Java и SQL прошли долгий путь. SQL – это “старая”, но устоявшаяся и хорошо понятная технология. J… Помеченный java, ооп.

Java и SQL прошли долгий путь. SQL – это “старая”, но устоявшаяся и хорошо понятная технология. Java тоже является наследием, хотя ее платформа JVM позволяет использовать множество новых и современных языков, построенных поверх нее. Тем не менее, по прошествии всех этих лет библиотеки, занимающиеся интерфейсом между SQL и Java, пришли и ушли, оставив JPA стандартом, который принимается только с сомнениями, за исключением каких-либо оставшихся вариантов. Пришло время заполнить этот пробел.

Особенности

  • С помощью одной аннотации ваш класс обладает полнофункциональными возможностями программирования на SQL
  • Простой в использовании реляционный (has_one, has_many и belongs_to) запрос и запрос по страницам
  • Написание SQL-выражений (арифметических, сравнительных и логических) с использованием синтаксиса Java

Java-коды:

// SQL programming with Java syntax without losing the features of SQL syntax
Order.Table orderTable = Order.asTable();
Select select = new Select();

select.project(sum(orderTable.amount) / sum(orderTable.quantity) * 100)
        .from(orderTable)
        .where(orderTable.quantity > 30 &&
            orderTable.salesAt.between("2020-10-10 00:00:00", "2020-10-30 23:59:59"))
        .groupBy(orderTable.productId);

Сгенерированный SQL:

-- SQL syntax is the same as Java syntax
SELECT ((((SUM(`T0`.`amount` ) / SUM(`T0`.`quantity` ) )) * 100))
FROM `orders` AS `T0`
WHERE ((`T0`.`quantity` > 30) AND 
       `T0`.`sales_at` BETWEEN '2020-10-10 00:00:00' AND '2020-10-30 23:59:59')
GROUP BY `T0`.`product_id`

Оригинал: “https://dev.to/braisdom/complex-sql-programming-in-java-2808”