您好,登錄后才能下訂單哦!
本篇內容主要講解“Spring-Boot如何使用mybatis-plus-gennretor代碼生成器生成代碼+分頁插件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Spring-Boot如何使用mybatis-plus-gennretor代碼生成器生成代碼+分頁插件”吧!
代碼自動生成器
1.導入需要的jar包
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- lombok 小辣椒 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!-- mybatis-plus-generator 代碼生成器jar --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.1.2</version> </dependency> <!-- freemarker 模板引型 (倆者選其一) --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> <!-- velocity 模板引型 (倆者選其一) --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency>
2 . 模板引型的選擇
package com.shi.generator; import java.util.Scanner; /** * 模板引型的選擇 */ public class GeneratorTest { /** * 讀取控制臺內容 */ public static int scanner() { Scanner scanner = new Scanner(System.in); String help = " !!代碼生成, 輸入 0 表示使用 Velocity 引擎 !!" + "\n對照表:" + "\n0 = Velocity 引擎" + "\n1 = Freemarker 引擎" + "\n請輸入:"; System.out.println(help); int slt = 0; // 現在有輸入數據 if (scanner.hasNext()) { String ipt = scanner.next(); if ("1".equals(ipt)) { slt = 1; } } return slt; } }
3 . 案例
package com.shi.generator; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert; import com.baomidou.mybatisplus.generator.config.po.TableFill; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.IColumnType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.*; /** * myBatis-Plus 代碼生成器案例 * 說明:該案例生成了controller ,service,dao,mapper,entity * 加入:Lombok(小辣椒),swagger2 * * *************需要自定義的變量*************** */ public class MysqlGenerator extends GeneratorTest { /** * MySQL 生成演示 */ public static void main(String[] args) { int result = scanner(); /****************************配置信息********************/ String[] tableName = new String[] { "large_area","machine_component" };/****************************需要生成的表名********************/ String outputDir = "D:\\project\\shiTest\\shi_Mybatis_plus2\\src\\main\\java";/****************************輸出的項目目錄********************/ String moduleName = "marchine";/*****************************模塊名(需要自己指定)**********/ String parentPackage = "com.shi"; /****************************自定義父包路徑********************/ String userName = "";/****************************用戶名********************/ String password = ""; /****************************密碼(url一樣要改)********************/ String url = "jdbc:mysql://192.168.69.11:3306/shihaifeng?useUnicode=true&allowPublicKeyRetrieval=true&useSSL=false&characterEncoding=utf8"; // 自定義需要填充的字段 // List<TableFill> tableFillList = new ArrayList<>(); // tableFillList.add(new TableFill("large_area", FieldFill.INSERT_UPDATE)); // 代碼生成器 AutoGenerator mpg = new AutoGenerator().setGlobalConfig( // 全局配置 new GlobalConfig() .setOutputDir(outputDir) .setFileOverride(true)// 是否覆蓋文件 .setActiveRecord(true)// 開啟 activeRecord 模式 .setEnableCache(false)// XML 二級緩存 .setBaseResultMap(true)// XML ResultMap .setBaseColumnList(true)// XML columList .setIdType(IdType.AUTO)//主鍵生成策略,自增 .setSwagger2(true)//生成swagger2注解支持 //.setKotlin(true) 是否生成 kotlin 代碼 .setAuthor("shiye") // 自定義文件命名,注意 %s 會自動填充表實體屬性! // .setEntityName("%sEntity"); // .setMapperName("%sDao") // .setXmlName("%sDao") // .setServiceName("MP%sService") // .setServiceImplName("%sServiceDiy") // .setControllerName("%sAction") ).setDataSource( // 數據源配置 new DataSourceConfig() .setDbType(DbType.MYSQL) // 數據庫類型 .setTypeConvert(new MySqlTypeConvert() { // 自定義數據庫表字段類型轉換【可選】 @Override public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) { System.out.println("轉換類型:" + fieldType); // if ( fieldType.toLowerCase().contains( "tinyint" ) ) { // return DbColumnType.BOOLEAN; // } return super.processTypeConvert(globalConfig, fieldType); } }) .setDriverName("com.mysql.jdbc.Driver") .setUsername(userName) .setPassword(password) .setUrl(url) ).setStrategy( // 策略配置 new StrategyConfig() .setCapitalMode(true)// 全局大寫命名 // .setDbColumnUnderline(true)//全局下劃線命名 // .setTablePrefix(new String[]{"bmd_", "mp_"})// 此處可以修改為您的表前綴 .setNaming(NamingStrategy.underline_to_camel)// 表名生成策略 .setInclude(tableName) // 需要生成的表 如果不指定就生成全部的表 // .setExclude(new String[]{"test"}) // 排除生成的表 // 自定義實體父類 // .setSuperEntityClass("com.baomidou.demo.TestEntity") // 自定義實體,公共字段 // .setSuperEntityColumns(new String[]{"test_id"}) // .setTableFillList(tableFillList) // .setEntityBooleanColumnRemoveIsPrefix(true) // 自定義 mapper 父類 // .setSuperMapperClass("com.baomidou.demo.TestMapper") // 自定義 service 父類 // .setSuperServiceClass("com.baomidou.demo.TestService") // 自定義 service 實現類父類 // .setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl") // 自定義 controller 父類 // .setSuperControllerClass("com.baomidou.demo.TestController") // 【實體】是否生成字段常量(默認 false) // public static final String ID = "test_id"; // .setEntityColumnConstant(true) // 【實體】是否為構建者模型(默認 false) // public User setName(String name) {this.name = name; return this;} // .setEntityBuilderModel(true) // 【實體】是否為lombok模型(默認 false)<a href="https://projectlombok.org/">document</a> .setEntityLombokModel(true) // Boolean類型字段是否移除is前綴處理 // .setEntityBooleanColumnRemoveIsPrefix(true) // .setRestControllerStyle(true) // .setControllerMappingHyphenStyle(true) ).setPackageInfo( // 包配置 new PackageConfig() .setModuleName(moduleName) .setParent(parentPackage) .setController("controller")// 這里是控制器包名,默認web 別的(service,entity...)都可以默認 ).setCfg( // 注入自定義配置,可以在 VM 中使用 cfg.abc 設置的值 new InjectionConfig() { @Override public void initMap() { Map<String, Object> map = new HashMap<>(); map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); this.setMap(map); } }.setFileOutConfigList(Collections.singletonList(new FileOutConfig( "/templates/mapper.xml" + ((1 == result) ? ".ftl" : ".vm")) { // 自定義輸出文件目錄 指定生成的mapper.xml文件輸出位置 @Override public String outputFile(TableInfo tableInfo) { return "d:\\mapper\\" + tableInfo.getEntityName() + ".xml"; } })) ).setTemplate( // 關閉默認 xml 生成,調整生成 至 根目錄 new TemplateConfig().setXml(null) // 自定義模板配置,模板可以參考源碼 /mybatis-plus/src/main/resources/template 使用 copy // 至您項目 src/main/resources/template 目錄下,模板名稱也可自定義如下配置: // .setController("..."); // .setEntity("..."); // .setMapper("..."); // .setXml("..."); // .setService("..."); // .setServiceImpl("..."); ); // 執行生成 if (1 == result) { mpg.setTemplateEngine(new FreemarkerTemplateEngine()); } mpg.execute(); // 打印注入設置,這里演示模板里面怎么獲取注入內容【可無】 System.err.println(mpg.getCfg().getMap().get("abc")); } }
分頁插件
可以參考官網(https://mp.baomidou.com/guide/page.html)
1. 編寫配置文件,初始化分頁插件
/** * Spring boot方式 * @author shfeng * @create 2019-07-19 14:25 */ @EnableTransactionManagement @Configuration @MapperScan("com.shi.*.mapper.mapper*") public class MybatisPlusConfig { /** * 分頁插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } }
2. 寫測試文件
/** * 這是是使用mybaits的分頁功能 但是分頁不是物理分頁需要改進 * 增加分頁插件 PaginationInterceptor 以后 ,使用的是物理分頁 */ @Test public void getLargerAraByPage(){ IPage<LargeArea> page = new Page<>(); page.setSize(2l); page.setCurrent(1l); Wrapper<LargeArea> queryWrapper = new QueryWrapper<LargeArea>(); page = largeAreaMapper.selectPage(page,queryWrapper); System.out.println("page = " + page); }
到此,相信大家對“Spring-Boot如何使用mybatis-plus-gennretor代碼生成器生成代碼+分頁插件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。