Каковы характеристики mybatis-plus
1. Генерация кода 2. Условный конструктор
Для меня основная цель - использовать его мощный условный строитель.
Быстрые шаги для использования:
1. Добавить зависимости от файлов POM
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version></dependency><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.0.1</version> </dependency>
Примечание. Mybatis-Plus автоматически поддержит зависимости Mybatis и Mybatis-Spring, поэтому нет необходимости вводить последние два, чтобы избежать конфликтов версий.
2. Изменить файл конфигурации
Просто замените Mybatis 'sqlSessionFactory на mybatis-plus. Mybatis-plus делает только некоторые функциональные расширения:
<bean id = "sqlSessionFactory"> <name = "dataSource" ref = "dataSource"/> <!-Автоматическое сканирование файла mapping.xml-> <name = "mapperlocations" value = "classpath: mybatis/*/*. xml"/> <Название = "configlocation" value = "classpath: mybatis/mybatis-config.xml"/> <name = "typealiasespackage" value = "com.baomidou.springmvc.model.*"/> <property name = "plugins"> <Array> <!-Paging Plugin Configuration-> <bean id = " value = "mysql"/> </bean> </array> </property> <!-Глобальная конфигурация-> <name = "name =" globalconfig "ref =" globalconfig "/> </bean>
В приведенной выше конфигурации, в дополнение к регулярной конфигурации Mybatis, существует дополнительная конфигурация и глобальная конфигурация плагина страниц. Mybatis-Plus обеспечивает очень удобное использование плагина для страниц, а также есть глобальная конфигурация следующим образом:
<bean id = "globalconfig"> <!-auto-> 0` ("ID Batabase ID Self-Incrent") input-> `1` (идентификатор ввода пользователя") id_worker-> `2` (" Global Unique ID ") uuid->` 3` ("Global Unique Id")-> <properation = "idtype" value = "2 ' /> <! Oracle-> `oracle` db2->` db2` h2-> `h2` hsql->` hsql` sqlite-> `sqlite` postgre->` postgresql` sqlserver2005-> `sqlserver2005` sqlserver->` sqling `>` sqlserver2005` sqlServer-> `sqling '>` `или` sqlserver2005` sqlserver-> `ryserver->` или `sqlserver2005`-sQl Этот элемент-> <!-<name = name = "dbtype" value = "oracle" />-> <!-Глобальная таблица устанавливает True для подчинения имени-> <name = "dbcolumnunderline" value = "true" /> < /bean>На этом этапе, даже если работа по конфигурации завершена, давайте используем простой пример, чтобы испытать его использование.
1. Создайте новую таблицу пользователя:
@TableName («Пользователь») Открытый класс Пользователь реализует serializable { / ** идентификатор пользователя* / private Long Id; / ** Имя пользователя*/ private String name; / ** Пользовательский возраст*/ частный целый возраст; @Tablefield (существует = false) частное строковое состояние;}Здесь есть две аннотации. Первым является @tablename («Пользователь»), который определяет связь с таблицей баз данных. Аннотация здесь означает, что в вашей базе данных должна быть таблица с именем пользователя, а имя столбца таблицы данных должно быть атрибутами пользовательского класса. Для атрибутов, которые находятся в классе пользователя, но не имеют в таблице пользователя, вторая аннотация @tablefield (существует = false), чтобы исключить атрибуты в классе пользователя.
2. Создайте новый интерфейс DAO -слой USERMAPPER:
/*** Интерфейс управления базой данных пользователей.
Интерфейс DAO должен реализовать BaseMapper, чтобы можно было использовать много инкапсулированных методов. Кроме того, вы также можете написать методы самостоятельно. @Select Annotation относится к файлу UserMapper, на который ссылается третий шаг.
3. Создайте новый файл конфигурации USERMAPPER:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> mapper.org/dtd/mybatis-3-mapper.dtd"> mapper. namespace = "com.baomidou.springmvc.mapper.system.usermapper"> <!-Столбец результатов общего запроса-> <sql id = "base_column_list"> id, имя, возраст </sql> <select id = "selectUserlist" outdype = "user"> select * from sys_user where whate =### @#### @ z.
4. Создайте новый класс сервисных уровней userservice:
/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ' вернуть страницу; }}
Userservice наследует класс ServiceImpl. Mybatis-Plus вводит в нас USERMAPPER. Таким образом, мы можем использовать много методов, предоставленных уровнем обслуживания по умолчанию, и мы также можем вызвать методы, которые мы пишем на уровне DAO для работы с базой данных. Класс страниц-это модель, которую Mybatis-Plus обеспечивает функцию страниц, наследует страницы, поэтому нам не нужно писать другой класс страницы сами, просто используйте ее напрямую.
5. Создайте новый уровень контроллера USERCONTROLLER
@Controllerpublic class usercontroller Extens BaseController {@autowired Private iuserservice userservice; @Responsebody @Requestmapping ("/page") public Object SelectPage (Model Model) {Page Page = New Page (1,10); page = userservice.selectuserpage (page, "нормальный"); вернуть страницу; }Вышеуказанное завершает основную функцию. Давайте посмотрим на его условного строителя.
Условный строитель для mybatis-plus
Во -первых, давайте посмотрим на простую и практичность экземпляра условного строителя.
public void test () {EntityWrapper eW = new EntityWrapper (); ew.setentity (new user ()); String name = "wang"; Целое число возраста = 16; ew.where ("name = {0}", name) .andnew ("Age> {0}", age) .orderby ("age"); Список <user> list = userservice.selectlist (ew); Page Page2 = userservice.selectPage (Page, EW); }Здесь, для сборки SQL -операторов используется условная обертка EntityWrapper. Принцип также легко понять. В приведенном выше коде результат первого запроса списка состоит в том, чтобы запрашивать все записи в базе данных с именем = wang и возраст> 16 лет и сортировать их в соответствии с возрастом. Второй запрос - добавить еще одну функцию страниц.
По сути, использование EntityWrapper может просто заполнить некоторые условные запросы, но если метод запроса используется очень часто, рекомендуется написать его в Usermapper самостоятельно.
Так может ли метод пользовательского Mapper использовать EntityWrapper? Конечно, это также возможно.
Пример этого приведен в документации.
1. Определение в Mappper:
Список <user> selectmypage (rowbounds rowbounds, @param ("ew") warper <t> warper);
2. Определите в файле Mapper:
<select id = "selectmypage" resultype = "user"> select * of user $ {ew.sqlsegment} </select>Для условного сплайсинга EntityMapper мы можем в основном реализовать, где и, или, GroupBy, OrderBy и другой синтаксис, обычно используемый в SQL, и конкретные методы строительства могут быть гибко объединены.
@Testpublic void testtsql11 () { / * * объект с выводом метода использования запросов, чтобы увидеть результат * / ew.setentity (новый пользователь (1)); ew.where ("name = {0}", "'' Zhangsan '"). и ("id = 1") .ornew ("status = {0}", "0"). или ("status = 1"). Не похоже на ("nlike", "notvalue"). Andnew ("new = xx"). .andnew ("pwd = 11"). isnotnull ("n1, n2"). Isnull ("n3") .groupby ("x1"). Groupby ("x2, x3") .having ("x1 = 11"). System.out.println (ew.getsqlsegment ());}Справочные документы
MyBaits-Plus Официальная документация
Суммировать
Выше приведено учебное пособие по быстрому введению для инструмента Mybatis Plus, представленного вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя!