Возможно, многие детские обуви не очень ясны, что в Mybatis различные языки сценариев могут использоваться для определения динамического SQL в файле Mapper; В настоящее время Mybatis поддерживает языки сценариев, включающие XML (по умолчанию); Скорость и Фримаркер. Используйте разные языки сценариев, чтобы завершить написание файлов Mapper. Первое - использовать язык сценариев, с которым вы знакомы, а второе - определить больше и богатых пользовательских инструкций для упрощения разработки Mapper. Относительно основного анализа сценариев поддержки Mybatis, а затем напишите статью для анализа пользовательских инструкций сценариев. В этой статье сначала представляет использование сценариев скорости в Mybatis.
Проект Mybatis-скорости позволяет вам удобно использовать скорость в качестве языка сценариев для завершения написания различных динамических SQL в файлах Mapper.
Обратите внимание, что скорость широко используется в сценариях. Если вы не знакомы с этим, вы можете сначала проверить сценарий скорости;
Установить
Добавить в Maven
<Depective> <groupid> org.mybatis.scripting </GroupId> <artifactid> mybatis-velocity </artifactid> <sersion> 1.2 </version> </depertion>
Обратите внимание, что мы используем Mybatis-скорость версии 1.2, которая требует поддержки Mybatis3.3;
В файле конфигурации Mybatis установите двигатель скрипта Velocity в качестве двигателя файла Mapper по умолчанию:
<TypeAliases> ... <typealias type = "org.mybatis.scripting.velocity.driver" alias = "velocity"/> </typealiases> <tesuts> ... <Настройка = "defaultscriptinglanguage" value = "velocity"/> </> Настройки>
Конфигурация завершена.
Далее вы можете использовать скрипт Velocity в файле Mapper:
<select id = "findperson" lang = "velocity"> #Set ($ pattern = $ _parameter.name + '%') выберите * Из человека, где имя, подобное @{pattern, jdbctype = varchar} </select>Уведомление:
Если используется скорость, параметры следует ссылаться с использованием @{}, потому что директива по скорости начинается с #, например, #Set #IF и т. Д.;
Используя скрипт Velocity, вы также можете настроить соответствующие Javatype и jdbctype в параметрах; Формат конфигурации: @{свойство, attr1 = val1, attr2 = val2, ...}; Настраиваемыми элементами являются Javatype, Jdbctype, Mode, Numericscale, ResultMap, TypeHandler, JdbctypEname;
Используйте переменные в контексте в директивах скорости и используйте $ _parameter в качестве справочника префикса, например,
#if ($ _ parameter.name) #set ($ _ name = '%'+$ _ parameter.name+'%') и имя как @{_ name} #endMybatis-скорость встроенная команда
В дополнение к Директиве по скорости, проект Mybatis-скорости определяет некоторые встроенные директивы скорости для Mybatis:
подрезать
#trim (префикс префиксоверриды суффикс суффикс суффикс
Значение параметров в нем такое же, как и значение параметра TRIM в XML;
Пример:
#trim ("где" "и | или")#if ($ _ parameter.name) #set ($ _ name = '%'+$ _ parameter.name+'%') и имя как @{_ name}#End#End#End#End#End#End где
#where () body #end #где () такой же, как <где> в XML. Вы можете заменить и/или перед условием и заменить его где; Обратите внимание, что /где () есть кронштейны;
мкт
#mset () Body #End #MSET добавляется M перед ним, чтобы отличить его от директивы #SET самой скорости. #mset эквивалентен элементу <tet> в XML. Вы можете добавить установленное оператор перед условием и удалить полуколон в последнем установленном блоке;
Пример:
<Обновление идентификатор = "Update"> USER USER #MSET () #if ($ _ parameter.name) name =@{name}, #end #if ($ _ parameter.age) age =@{age}, #end #if ($ _ parameter.bornate) bornate =@{borndate} #end #whue Id =@{id} </update> update> update> update>@update} # повторить
#Repeat (Collection VAR Разделитель открыт закрытый) Body #END #Directive Directive такая же, как элемент <FOREACH> в XML. Он может легко пройти элементы типа сбора/массива и использовать в нем каждый элемент:
Пример:
Выберите *из города #где () #Repeat ($ _parameter.ids $ id "," "state_id in (" ")") @{id} #end #end в
#in (Collection Var Field) Body #end
Директива #IN - это новая директива, которая может быстро генерировать соответствующее поле в () операторе () для условий в SQL; В списке параметров коллекция представляет контент в In The In Traversed; VAR представляет временное ссылочное имя каждого объекта в обходе; Поле представляет имя поля, сгенерированное перед оператором в IN;
Пример:
Выберите *из города #где () #in ($ _parameter.ids $ id "state_id") @{id} #end #endПользовательские команды
Mybatis-скорость позволяет вам удобно настроить свои собственные инструкции для упрощения разработки. Шаги пользовательских инструкций:
Добавить файл конфигурации mybatis-velocity.properties в классе;
Создайте свой собственный класс диаграммы директивы скорости;
Добавьте класс диаграммы директивы скорости, который вы создали сами в файл конфигурации;
Используйте директивы в файле mapper.xml;
Пример:
// Пользователь определенный DististivePackage com.myProject.Directives; // Пользовательские директивные классы должны наследовать классы директивы; Общедоступный класс MyDirective Extends Directive {} // mybatis-velocity.properties// Если есть несколько пользовательских директивных классов, разделить их с помощью полуколонов; userdirective = com.myproject.directives.mydirective; // Mapper XML FileSelect *из City #myDirective () ...... #endВсестороннее использование
При использовании Velocity-Mybatis, типичный Crud Mapper может выглядеть так:
<mapper namespace="mybatis.com._520it.mybatis.UserMapper"><resultMap type="User" id="user_mapping"><id column="id" property="id"/><result column="name" property="name"/><result column="age" property="age"/><result column="borndate" property="bornDate"/><result column="borndate" Property = "Borndate"/> <resultMap> <insert id = "add" keycolumn = "id" keyproperty = "id" useGeneratedKeys = "true"> вставьте в пользователь (имя, возраст, borntate) значения (@{name, javatype = string, jdbcte = varhch},@{a eave}@{{{weardate at) </dertate at) </dertate at) </} </} </} </} </dertate at) </dbcte = varch id="update">UPDATE USER #mset()#if($_parameter.name) name=@{name}, #end#if($_parameter.age) age=@{age}, #end#if($_parameter.bornDate) born=@{bornDate} #end#endWHERE id = @{id}</update><delete id="delete" ParameterType = "long"> удалить из пользователя, где id = @{id} </delete> <sql id = "user_column"> id, name, age, bornate </sql> <select id = "get" resultmap = "user_mapping"> select <Cult RefID = "user_column"/> от пользователя us = @{id} </select> "" use elist> ""/"/" "/" "/" "/" ulist> "? ResultMap = "user_mapping"> select <include refid = "user_column"/> от user </select> <select id = "listbyname" resultmap = "user_mapping" parametertype = "string"> select <include refid = "user_column"/> из пользователя, где имя = @{name} </select> <select> "quedmap" result "result"> "stame stame} </select> <select>" Идентификатор, имя, возраст, Borndatefrom user#where ()#if ($ _ parameter.name) #Set ($ _ name = '%'+$ _ parameter.name+'%') и имя как @{_ name}#end#end#if ($ _ parameter.orderby) Порядок @{orderby} @{endize##end##if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if if itfize). @{start}, @{pagesize} #end </select> </mapper>Выше приведено подробное объяснение учебника по использованию сценария Velocity Mybatis, представленное вам редактором (рекомендуется). Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!