1. Методы отображения, поддерживаемые mybatis
Поддерживаемые mybatis методы отображения включают mapper.xml файлы на основе xml и классы интерфейса mapper на основе Java. Существует четыре основных аннотации методов интерфейса: @Insert, @Delete, @Update и @Select
2. Как отображить с помощью аннотаций интерфейса
Следующие эксперименты основаны на t_user таблицах и структурированы следующим образом:
2.1 Увеличение @Insert
Существует в основном три схемы для этого: ручное обозначение (прикладной уровень), самодобавляемый первичный ключ (одинарная таблица уровня данных) и выбор первичного ключа (множественные таблицы на уровне данных).
1. Вручную указать первичный ключ на уровне приложений
Ручной метод не рассматривает первичный ключ по-разному и присваивает первичному ключу значение, когда прикладной слой генерирует объект перед вставкой, что ничем не отличается от обычного поля при вставке.
В приведённом выше примере mybatis не знает, какое поле является первичным ключом, а id — первичным ключом, но оно не рассматривается иначе.
Обратите внимание, что метод #{username} — использовать User в качестве текущего контекста, чтобы при доступе к атрибутам пользователя можно было напрямую записать имя атрибута.
2. Таблица добавляет первичный ключ
Самоувеличивающийся первичный ключ соответствует заполнению первичного ключа в конфигурации XML, что приводит простой пример:
Используйте Option, чтобы соответствовать свойствам селективного набора тегов в XML, userGeneratordKeys — чтобы указать необходимость использовать самоувеличивающийся первичный ключ, и keyProperty — чтобы указать название поля первичного ключа.
Самоувеличивающийся первичный ключ использует функции самоувеличения базы данных.
3. Выберите первичный ключ
Выберите первичный ключ для генерации значения из слоя данных и используйте это значение как значение первичного ключа.
2.2 Удалить @Delete
При удалении просто запишите условие в значении @Delete аннотации и верните int-тип как количество успешно удаленных записей.
2.3 Изменение @Update
При изменении просто запишите SQL-оператор в значение @Update и верните int-тип, указывающий количество изменённых строк записи.
2.4 Проверьте @Select
Запросы немного сложнее, потому что он включает в себя установку найденных полей объекта, и обычно существует три способа:
1. В SQL-команде вручную укажите псевдоним, чтобы он соответствовал
При написании SQL-операторов вручную назначайте псевдоним каждому полю для соответствия атрибутам объекта, что подходит для ситуаций, когда имя поля таблицы и атрибута объекта сильно различаются и полей таблицы немного.
2. Используйте автоматическое преобразование подчёркивания горба от mybatis
В mybatis есть опция mapUnderscoreToCamelCase, которая применяется, когда имя поля в таблице совпадает с именем атрибута объекта, но с разницей в написании подчёркивания и горба.
После настройки mapUnderscoreToCamelCase mybatis попытается преобразовать подчёркивание в горб при установке данных из ResultSet на объект, а затем сшить набор спереди, чтобы задать атрибуты.
Включите конверсию:
Затем запросите:
Смотря на напечатанный результат, birth_day атрибуты заполняются в объекте:
3. Используйте ResultMap
Если имя поля таблицы и имя атрибута объекта сильно различаются, а в таблице много полей, для адаптации следует использовать ResultMap.
@Results соответствует ResultMap в XML, и вы можете указать для него идентификатор, который можно использовать для ссылки в других местах, например, для ссылки на вышеуказанные Результаты:
Используйте @ResultMap для ссылки на существующую ResultMap, которую можно определить на Java с помощью @Results аннотаций или в XML с помощью тегов resultMap.
2.5 Пример кода
User.java
UserMapper.java
3. Краткое содержание
Преимущества использования аннотаций интерфейса:
1. Писать операторы отображения удобнее и быстрее
Недостатки использования аннотаций интерфейсов:
1. Он подходит для относительно простых конфигураций, и интерфейс нельзя реализовать, когда он слишком сложный.
2. Не могу использовать динамический SQL, немного безвкусно.
|