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

OSCHINA-MIRROR/qdbp-qdbp-jdbc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 10:32 2ba1729

QDBP-JDBC

QDBP-JDBC, или Qdbc, — это ORM-фреймворк для баз данных, который после доработки может стать заменой MyBatis.

В основе лежит JdbcTemplate из Spring.

https://gitee.com/qdbp/qdbp-jdbc https://github.com/zhaohuihua/qdbp-jdbc https://yuque.com/zhaohuihua/qdbc — центр документации.

Причины создания проекта

Проект создан, потому что существующие фреймворки недостаточно удобны:

  • Hibernate слишком тяжеловесный, обучение требует больших усилий, а при неправильном использовании могут возникнуть проблемы с производительностью;
  • Spring JdbcTemplate предоставляет только предварительную компиляцию параметров и сопоставление результатов;
  • MyBatis требует генерации большого количества XML-файлов, которые сложно поддерживать, особенно при изменении структуры таблиц;
  • даже если есть инструменты, такие как MyBatisGenerator, помогающие в генерации кода, при изменении структуры всё равно возникают сложности;
  • ещё одна проблема заключается в том, что все фреймворки используют вопросительные знаки для замены параметров в предварительно скомпилированных SQL-журналах. Это затрудняет воспроизведение проблем, когда параметров много.

Особенности и уникальные решения

  • Особенности: для операций CRUD (создание, чтение, обновление и удаление) и связанных условий, таких как больше/меньше/не равно/like/in, не требуется писать SQL или XML.
  • Особенности: интеграция с глобальными бизнес-интерфейсами, предоставление интерфейсов для присвоения значений общим полям (создатель/дата создания/редактор/дата редактирования/арендатор и т. д.) и реализации логического удаления.
  • Особенности: поддержка различных баз данных для часто используемых операций, включая пакетное добавление, пакетное изменение и рекурсивный поиск дочерних узлов.
  • Уникальные решения: SqlBuffer позволяет объединять SQL-текст и переменные в одной строке.
  • Уникальные решения: SQL-журнал можно скопировать и выполнить в базе данных.
  • Уникальные решения: возможность выборочного ведения журнала пакетных операций.
  • Уникальное решение: в SQL-шаблонах можно не только определять тип базы данных, но и её версию.

Оптимизация SQL-шаблонов

Сложные запросы или статистические операции всё ещё требуют написания SQL или XML по следующим причинам:

  1. Сложность запросов делает их невозможными для инкапсуляции, а принудительная инкапсуляция приводит к увеличению сложности и затрат на обучение.
  2. Независимые SQL-запросы облегчают проверку со стороны администратора баз данных (DBA), и именно эти сложные запросы требуют проверки.

Есть несколько способов оптимизации:

  • В MyBatis многие простые операции CRUD также требуют использования SQL-шаблонов, что отвлекает DBA от важных задач.
  • Для разных баз данных требуются разные наборы шаблонов, но на практике они обычно похожи, с небольшими различиями.

Подробности см. в разделе «Объяснение SQL-шаблона».

Версия

JDK поддерживает версии 1.7 и выше.

Поддерживаются следующие базы данных: MySQL, Oracle, DB2, PostgreSQL и H2. Проведено полное тестирование. Подробности см. в разделе «Поддержка различных баз данных».

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

Если вы используете spring-web, вы можете использовать qdbp-jdbc-spring.

    <dependency>
        <groupId>com.gitee.qdbp</groupId>
        <artifactId>qdbp-jdbc-spring</artifactId>
        <version>4.2.4</version>
    </dependency>

Для других проектов можно использовать qdbp-jdbc-core.

    <dependency>
        <groupId>com.gitee.qdbp</groupId>
        <artifactId>qdbp-jdbc-core</artifactId>
        <version>4.2.4</version>
    </dependency>

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/qdbp-qdbp-jdbc.git
git@api.gitlife.ru:oschina-mirror/qdbp-qdbp-jdbc.git
oschina-mirror
qdbp-qdbp-jdbc
qdbp-qdbp-jdbc
master