Одной из мощных функций MyBatis является его динамический SQL.Пробелы и запятые в конце списка, на которые необходимо обращать внимание при объединении в прошлом, теперь можно обрабатывать без ручной обработки.MyBatis использует мощные выражения на основе OGNL для реализации , следующее В основном ввести.
1. если тег
if является наиболее часто используемым оператором суждения, в основном используемым для реализации некоторого простого условного выбора. Базовый пример использования выглядит следующим образом:
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user where 1=1
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="age != null ">
and age = #{age}
</if>
</select>
2. где тег
В приведенном выше примере "1=1" используется, чтобы избежать сообщения об ошибке, когда последующие условия не выполняются. Есть ли способ избежать этого? Конечно, как будет сказано далее, тег автоматически определит, что если в содержащемся теге есть возвращаемое значение, вставить «где» в sql, если последнее возвращенное содержимое тега «где» начинается с и или или он также будет автоматически удален, В приведенном выше примере он заменен тегом «где» и записан следующим образом:
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user
<where>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="age != null ">
and age = #{age}
</if>
</where>
</select>
3. обрезная этикетка
Функция предназначена для удаления специальных строк.Его атрибут prefix представляет собой префикс инструкции, атрибут prefixOverrides указывает, какие специальные строки необходимо удалить, а атрибут prefixOverrides игнорирует текстовую последовательность, разделенную вертикальной чертой (обратите внимание, что пробелы в этом примере также необходимо), суффиксы обрабатываются так же, как и префиксы.
Основные атрибуты тега обрезки следующие:
- префикс: Префикс переопределяет и дополняет его содержимое.
- суффикс: суффикс переопределяет и дополняет его содержимое.
- prefixOverrides: Условия определения префикса.
- suffixOverrides: условия для оценки суффикса.
Приведите два примера.
- Использовать атрибут префикса
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user
<trim prefix="WHERE" prefixOverrides="AND |OR " >
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="sex != null ">
or sex = #{sex}
</if>
<if test="age != null ">
and age = #{age}
</if>
</trim>
</select>
- Использовать атрибут суффикса
<update id="update" parameterType="Object">
UPDATE user
<trim suffix=" SET " suffixOverrides=",">
<if test="id != null ">id=#{id},</if>
<if test="name != null ">name=#{name},</if>
<if test="age != null ">age=#{age},</if>
</trim>
WHERE ID=#{id}
</update>
4. Этикетки
Функция обхода коллекции.Хорошо может поддерживать обход массива и коллекции интерфейсов List и Set.Часто комбинируется с in в sql.
Основные атрибуты тега foreach следующие:
- item: указывает текущий элемент в цикле.
- index: указывает индекс позиции текущего элемента в коллекции.
- коллекция: настроить имя свойства списка и т. д.
- открыть и закрыть: настроить, какие символы оборачивают эти элементы коллекции.
- separator: настраивает разделитель каждого элемента.
Например:
<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">
select * from user where id in
<foreach item="id" index="index" collection="userList"
open="(" separator="," close=")">
#{id}
</foreach>
</select>
До сих пор были представлены общие функции динамического SQL MyBatis.Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение для связи!
Рекомендуемое чтение
1. Позвольте вам понять Spring Security за одну минуту! 2. Научитесь использовать mybatis-generator для автоматической генерации кода за одну минуту! 3. Рука об руку с вами, семь способов распространения транзакций Spring в реальном бою 4. Серия SpringBoot — интеграция Mybatis (метод аннотации) 5. Серия SpringBoot — интеграция Mybatis (метод конфигурации XML)
Java Suisui Nian, общедоступный аккаунт, который настаивает на оригинальности, предоставляет вам серию высококачественных технических статей, таких как системная архитектура, микросервисы, Java, SpringBoot, SpringCloud и т. д. Если вы считаете, что статья хорошая, я надеюсь, что вы можете переслать ее или «посмотреть», большое спасибо! Подпишитесь на официальный аккаунт ниже и ответьте «1024», вас ждут сюрпризы!
Эта статья опубликована в блогеOpenWriteвыпуск!