1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-ObjectiveSql

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ObjectiveSQL — это ORM-фреймворк на Java, основанный на паттерне ActiveRecord, который способствует быстрому развитию и написанию чистого кода с наименьшим количеством настроек.

Основные функции:

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

Почему ObjectiveSQL?

  • Если ваш проект ориентирован на анализ данных на основе реляционной базы данных и содержит множество арифметических выражений в операторах SQL, ObjectiveSQL поможет вам удобно и безопасно писать выражения с использованием синтаксиса Java;
  • Динамическая генерация кода ObjectiveSQL позволяет получить доступ к базе данных без написания кода на Java.

Производительность (Oracle JMH)

query_perf

Установка

Установка плагина в IntelliJ IDEA

Preferences/Settings -> Plugins -> Поиск «ObjectiveSql» в market -> Install

Зависимости Maven

<!-- В standalone -->
<dependency>
    <groupId>com.github.braisdom</groupId>
    <artifactId>objective-sql</artifactId>
    <version>1.4.6</version>
</dependency>
<!-- В Spring Boot -->
<dependency>
  <groupId>com.github.braisdom</groupId>
  <artifactId>objsql-springboot</artifactId>
  <version>1.3.4</version>
</dependency>

Для получения дополнительной информации обратитесь к файлу pom.xml.

Примеры

ObjectiveSQL предоставляет полные примеры для различных баз данных. Вы можете открыть их непосредственно в IntelliJ IDEA как отдельный проект. На самом деле, они являются не только примерами, но и модульными тестами ObjectiveSQL для разных баз данных.

Если вы хотите запустить без настройки, попробуйте: SQLite.

Другие: MySQL, Oracle, MS SQL Server, PostgreSQL, Spring Boot.

Простое SQL-программирование без кодирования

Вам нужно определить только JavaBean с аннотациями.

@DomainModel
public class Member {
    private String no;
    
    @Queryable
    private String name;
    private Integer gender;
    private String mobile;
    private String otherInfo;

    @Relation(relationType = RelationType.HAS_MANY)
    private List<Order> orders;
}
Сохранение данных
Member.create(newMember);
Member.create(new Member[]{newMember1, newMember2, newMember3}, false);

Member.update(1L, newMember, true);
Member.update("name = 'Smith => Jackson'", "name = ?", "Alice");

Member.destroy(1L);
Member.destroy("name = ?", "Mary");
Подсчёт и запросы
Member.countAll();
Member.count("id > ?", 1);
Member.queryByPrimaryKey(1);
Member.queryFirst("id = ?", 1);
Member.query("id > ?", 1);
Member.queryAll();
Страничные запросы
Page page = Page.create(0, 10);
PagedList<Member> members = Member.pagedQueryAll(page, Member.HAS_MANY_ORDERS);
Запросы по связям
Member.queryAll(Member.HAS_MANY_ORDERS);
Member.queryByPrimary(1, Member.HAS_MANY_ORDERS);
Member.queryByName("demo", Member.HAS_MANY_ORDERS);
...

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

Order.Table orderTable = Order.asTable();
Select select = new Select();

// В ObjectiveSQL операторы Java могут быть перегружены
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);
``` ```
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`

Reference documentation

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-ObjectiveSql.git
git@api.gitlife.ru:oschina-mirror/mirrors-ObjectiveSql.git
oschina-mirror
mirrors-ObjectiveSql
mirrors-ObjectiveSql
master