Mybatis-Plus (MP для короткометражных)-это инструмент улучшения Mybatis. Основываясь на Mybatis, он только улучшает и не меняется и рожден для упрощения развития и повышения эффективности.
Китайский документ: http://baomidou.oschina.io/mybatis-lus-doc/#/
Эта статья представляет
1) Как его построить
2) Генерация кода (контроллер, служба, Mapper, XML)
3) Для вас были сделаны классы базовых базовых классов и базовых страниц.
1. Как его построить
1. Сначала мы создаем проект Springboot -> https://start.spring.io/
2. Зависимость Maven
<dependency> <groupid> com.baomidou </GroupId> <ArtifactId> mybatis-plus-boot-starter </artifactid> <sersive> 2.3 </version> </depervice> <!-Зависимость от скорости для генерации кода-> <DegyTocity> <groupid> org.apache.vachity. <версия> 2.0 </version> </depervice>
3. Конфигурация (потому что я чувствую, что она слишком многословная, конфигурация источника данных здесь опущена)
Application.properties
mybatis-lus.mapper-locations = classpath: /mapper/*mapper.xmlmybatis-plus.typealiasespackage=com.taven.web.springbootmp.entitymybatis-plus.global-config.id-type=3mybatis-plus.global-config.strat.strat.d.id-type=3mybatis-plus.global-config.strat.strat egy = 2mybatis-plus.global-config.db-column-underline = truemybatis-plus.global-config.key-generator = com.baomidou.mybatisplus.incrementer.oraclekeygeneratormybatis-plus.global-config.logic-value = 1 mybatis-plus.global-config.logic-not-delete-value = 0mybatis-plus.global-config.sql Injector = com.baomidou.mybatisplus.mapper.logicsqlinject#Это должно быть изменено на ваш класс mybatis-plus.global-config.meta-handler = combatis-plus.global-config.meta-handler = combatis-plus.global-config.meta-handla-handlar .taven.web.springbootmp.mymetaobjecthandlermybatis-plus.configuration.map-underscore-to-camel-case = truemybatis-plus.configuration.cache-edabled = nullybatis-plus.configuration.jdbc-type-for = null
Класс конфигурации mybatisplusconfig
Импорт org.mybatis.spring.annotation.mapperscan; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; импорт com.baomidou.mybatisplus.incrementer.h2keygenator; com.baomidou.mybatisplus.incrementer.ikeygenerator; import com.baomidou.mybatisplus.mapper.isqlinjector; импорт com.baomidou.mybatisplus.mapper.logicsqlinjector; import com.baomidou.mybatisplus.mapper.metaeclantor; import com.baomidou.mybatisplus.mapper.metaeclandlor; com.baomidou.mybatisplus.plugins.paginationInterceptor; импорт com.baomidou.mybatisplus.plugins.performanceInterceptor; импорт com.taven.web.springbootmp.MyMetaObjectHandler;@EnableTransactionManagement@Configuration@MapperScan("com.taven.web.springbootmp.mapper")public class MybatisPlusConfig { /** * mybatis-plus SQL execution efficiency plug-in [can be closed in production environment] */ @Bean public PerfectionInterceptor PerformanceInterceptor () {return new PerfectionInterceptor (); } / * * Плагин для страниц, автоматически идентифицируя мультитенанты в типе базы данных, пожалуйста, см. Официальный веб-сайт [Плагин расширение] * / @Bean Public PaginationInterceptor PaginationInterceptor () {return New PaginationInterceptor (); } @Bean public metaobjecthandler metaobjecthandler () {return new mymetaobjecthandler (); } / *** Внедрить генератор первичных ключей* / @bean public ikeygenerator keygenerator () {return new h2keygenerator (); } / *** Инъекция инжектора SQL* / @Bean Public Isqlinjector SQLinjector () {return new LogicSqlinjector (); }} Импорт com.baomidou.mybatisplus.mapper.metaobjecthandler; import org.apache.ibatis.reflect. MetaObjecthandler {защищенный окончательный статический логист logger = loggerfactory.getLogger (application.class); @Override public void insertfill (metaobject metaobject) {logger.info («Делайте что -нибудь неописанное при добавлении»); } @Override public void updatefill (metaobject metaobject) {logger.info («Делай что -то неописанное при обновлении»); }} 2. Генерация кода
Exepute Junit для генерации контроллера, сервисного интерфейса, реализации, Mapper и XML
Импорт org.junit.test; import com.baomidou.mybatisplus.generator.autogenerator; import com.baomidou.mybatisplus.generator.config.datasourceconfig; импорт com.baomidou.mybatisplus.generator.config.globalconfig; com.baomidou.mybatisplus.generator.config.packageconfig; импорт com.baomidou.mybatisplus.generator.config.strategyconfig; импорт com.baomidou.mybatisplus.generator.config.rules.dbtype; импорт com.baomidou.mybatisplus.generator.config.rules.namingstrategy;/** * <p> * Код генерации теста * </p> * * @author K God * @date 2017/12/18 */public generatormentserviceentity {@test public void generatecode () {string packagename = "taven.wepen.wepen.wepen Boolean servicenamestartwithi = false; // user -> userservice, установить на True: user -> iUserService GenerateBytables (ServicenAmestartwithi, PackageName, "Cable", "Station"); // Модифицируется на название вашей таблицы} Private Void GenerateBytables (Boolean ServiceNamestAr новый GlobalConfig (); String dburl = "jdbc: mysql: // localhost: 3306/conving"; DataSourceConfig DataSourceConfig = new DataSourceConfig (); dataSourceConfig.setDbtype (dbtype.mysql) .seturl (dburl) .setusername ("root") .setpassword ("root") .setdrivername ("com.mysql.jdbc.driver"); Стратегия Contrage ContrageConfig = new StrategyConfig (); Стратегия Concfig .setCapitalMode (true) .setentityLombomodel (false) .setDbcolumnUnderline (true) .setnaming (namingstrategy.underline_to_camel) .setinclude (таблицы); // изменять и заменить имя, которое вам нужно, пройти несколько табличных имен. .setAuthor ("yin tianwen") .setOutputDir ("e: // dev // stsdev // spring-boot-mp // src // main // java") .setfileoverride (true); if (! servicenamestartwithi) {config.setserviceName ("%sservice"); } new Autogenerator (). SetGlobalConfig (config) .setDatasource (dataSourceConfig) .SetStrategy (стратегия Config) .SetPackageInfo (new PackageConfig () .setParent (packageName) .setController («Контроллер».) .setEntity ("Entity"). } // private void GenerateBytables (String PackageName, String ... Tablenames) {// GenerateBytables (True, PackageName, TableName); //}}Строительство была в основном завершена на этом этапе, и вы можете начать использовать ее ниже!
3. Используйте mybatis-plus
Во -первых, мы выполняем генерируемый код () выше и генерируем следующий код для нас на основе структуры таблицы (XML был перенесен на следующие вручную). Сервис и Mapper унаследовали базовый класс и инкапсулировали многие методы для нас. Давайте посмотрим несколько простых примеров ниже.
/** * <p> * Front-End Controller * </p> * * @author yin tianwen * @since 2018-05-31 */ @controller @requestmapping ("/cable") открытый класс Cablecontroller {@autowired Private Cableservice Cableservice; /*** Тест запроса списка**/@Requestmapping ("/1") @Responsebody public Object Test1 () {// Создание объекта EntityWrapper, соответствующего объекту и фильтру и Query entityWrapper <bable> ew = new EntityWrapper <> (); ew.where ("type = {0}", 1) .like ("name", "king"). и ("core_number = {0}", 24). и ("is_delete = 0"); List <bable> list = cableservice.selectlist (ew); Список <map <string, object >> maps = cableservice.selectmaps (ew); System.out.println (список); System.out.println (maps); вернуть "OK"; }/*** Тест запроса на страницы*/@Requestmaping ("/2") @Responsebody public Object Test2 () {// Создание объекта EntityWrapper, соответствующего объекту, и выполните фильтрацию Query intityWrapper <bable> ew = new EntityWrapper <> (); ew.where ("type = {0}", 1) // .like ("name", "king"). и ("core_number = {0}", 24). и ("is_delete = 0"); Page <bable> page = новая страница <> (1,10); Page <Cable> pagerst = cableservice.selectPage (Page, EW); вернуть Пагерст; }/*** Полевое поле пользователя*/@Requestmapping ("/3") @Responsebody public Object Test3 () {Object vl = null; // Создание объекта EntityWrapper, соответствующего сущности, и выполнить фильтрацию Query EntityWrapper <bable> ew = new EntityWrapper <> (); ew.setsqlselect ("id,` name`, " +" case type/n " +", когда 1 then '220kv'/n " +" end typename "). где (" type = {0} ", 1) // .like (" name "," King "). Где false," voltage_level =#{0} ", vl); Страница <> (1,10); Page <Cable> pagerst = cableservice.selectPage (Page, EW); вернуть Пагерст; }/** * INSERT */@Requestmapping ("/4") @Responsebody public Object test4 () {cable c = new Cable (); c.setname («тестовый оптический кабель»); cableservice.insert (c); вернуть "OK"; }/** * Обновление */@Requestmapping ("/5") @Responsebody public объект Test5 () {cable c = cableservice.selectbyid (22284l); C.SetName («Тестовый оптический кабель 2222»); c.settype (1); cableservice.updatebyid (c); вернуть "OK"; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.