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

OSCHINA-MIRROR/thinwonton-mybatis-metamodel

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

mybatis-metamodel

Maven Central

介绍

mybatis-metamodel — это плагин для генерации метамодели данных для mybatis-plus и tk mapper, предназначенный для решения проблемы тесной связи между кодом и структурой базы данных при создании пользовательских SQL-запросов в сложных сценариях.

Назначение

Мы знаем, что mybatis-plus и tk mapper — это отличные плагины для расширения возможностей mybatis. Они реализуют общие операции CRUD (создание, чтение, обновление и удаление) путём переопределения MappedStatement. Это значительно повышает эффективность разработки. Однако в некоторых сложных сценариях использования общие операции CRUD не могут удовлетворить наши потребности в разработке, и нам приходится создавать собственные запросы с помощью встроенных компонентов условий запроса. В таких случаях трудно избежать использования строковых представлений имён таблиц или полей, что может привести к ошибкам во время выполнения в сложных проектах, если имена полей будут изменены.

Чтобы избежать ошибок во время выполнения, этот проект предоставляет метаданные базы данных на этапе компиляции, помогая приложениям обнаруживать изменения в существующих метаданных базы данных уже на этапе компиляции.

Рассмотрим пример: нам нужно создать собственный SQL-запрос для получения информации о пользователе. После внедрения этого проекта мы можем автоматически сгенерировать метамодель UserInfo_.class на этапе компиляции, которая содержит информацию о каждом поле таблицы. Кроме того, мы можем использовать MetaModelContext для получения соответствующей информации о таблице.

Mapper

// Пример запроса по условию
String queryUserName = "hugo_1";
Example userInfoQueryExample = new Example(UserInfo.class);
Example.Criteria criteria = userInfoQueryExample.createCriteria();
criteria.andEqualTo(UserInfo_.username.getColumn(), queryUserName);
List<UserInfo> userInfosByQuery = userInfoMapper.selectByExample(userInfoQueryExample);
Assert.assertEquals(1, userInfosByQuery.size());

// Получение имени таблицы
String tableName = metaModelContext.getTableName(UserInfo_.class);
Assert.assertEquals("user_info", tableName);

mybatis-plus

// Запрос по карте
// Поиск данных с именем пользователя hugo_1
Map<String, Object> map = new HashMap<>();
map.put(UserInfo_.username.getColumn(), "hugo_1"); // Получение метаданных
userInfo = userInfoMapper.selectByMap(map).get(0);

// Обобщённый запрос
// Список адресов, равных «Китай»
List<UserInfo> userList = userInfoMapper.selectList(
        new QueryWrapper<UserInfo>().eq(UserInfo_.address.getColumn(), "Китай")
);

// Получение имени таблицы
String tableName = metaModelContext.getTableName(UserInfo_.class);

Поддерживаемые функции

Mapper

  • Поддержка версии MAPPER 1.1.5+
    • Поддержка использования примитивных типов (usePrimitiveType), по умолчанию отключена, рекомендуется не включать, так как это не имеет смысла.
    • Поддержка конфигурации useSimpleType, по умолчанию включена.
    • Поддержка enumAsSimpleType.
    • Поддержка конфигураций catalog и schema базы данных.
    • Поддержка глобального стиля преобразования полей.
    • Поддержка @Table аннотации.
    • Поддержка @NameStyle аннотации.
    • Поддержка аннотаций @Transient, @Column и @ColumnType.
    • Поддержка игнорирования полей со статическими или временными модификаторами.

mybatis-plus

  • Поддержка mybatis-plus версии 3.2.0+
    • Поддержка глобальных конфигураций tableUnderline и capitalMode.
    • Поддержка игнорирования статических или временных полей.
    • Поддержка @TableName аннотации.
    • Поддержка @TableId и @TableField аннотаций.

Неподдерживаемые функции

Mapper

  1. Не поддерживается динамическое имя таблицы IDynamicTableName.
  2. Не поддерживаются методы с использованием аннотаций, то есть глобальная конфигурация enableMethodAnnotation отключена.

TODO

Mapper

Mybatis-plus

  1. Поддержка конфигурации keepGlobalFormat.
  2. Поддержка конфигурации tablePrefix.
  3. Поддержка конфигурации columnFormat.
  4. Поддержка конфигурации propertyFormat.

Инструкция по использованию

См. wiki:

Благодарности

Спасибо следующим проектам с открытым исходным кодом:

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

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

Введение

MyBatis-MetaModel — это плагин для генерации метамодели данных MyBatis-Plus и TK Mapper. Его цель — решить проблему тесной связи при создании пользовательских SQL в сложных сценариях. Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

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

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