時間:2020-10-19來源:www.farandoo.com作者:電腦系統城
1.官方地址:
http://mybatis.plus/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B
2.數據庫結構:
3.依賴導入
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> <version> 5.1 . 39 </version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version> 3.4 . 0 </version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version> 3.4 . 0 </version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version> 2.3 . 30 </version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional> true </optional> </dependency> |
配置freemarker是因為myBatis中默認的引擎是freemarker,支持自定義引擎
3.目錄結構
4.官方生成器類
CodeGenerator
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
public class CodeGenerator { /** * <p> * 讀取控制臺內容 * </p> */ public static String scanner(String tip) { Scanner scanner = new Scanner(System.in); StringBuilder help = new StringBuilder(); help.append( "請輸入" + tip + ":" ); System.out.println(help.toString()); if (scanner.hasNext()) { String ipt = scanner.next(); if (StringUtils.isNotBlank(ipt)) { return ipt; } } throw new MybatisPlusException( "請輸入正確的" + tip + "!" ); } public static void main(String[] args) { // 代碼生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty( "user.dir" ); /** * 這里需要設定一下保存的地址是本項目下的/src/main/java */ gc.setOutputDir(projectPath + "/maven1018/src/main/java" ); gc.setAuthor( "XYD" ); gc.setOpen( false ); // gc.setSwagger2(true); 實體屬性 Swagger2 注解 mpg.setGlobalConfig(gc); // 數據源配置 /** * 設置數據庫名稱和數據庫賬戶密碼 */ DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl( "jdbc:mysql://localhost:3306/temporary?useUnicode=true&useSSL=false&characterEncoding=utf8" ); // dsc.setSchemaName("public"); dsc.setDriverName( "com.mysql.jdbc.Driver" ); dsc.setUsername( "root" ); dsc.setPassword( "12345" ); mpg.setDataSource(dsc); // 包配置 /** * 設置生成文件保存地址,模塊名為命令窗口輸入的模塊名 */ PackageConfig pc = new PackageConfig(); pc.setModuleName(scanner( "模塊名" )); pc.setParent( "com.baomidou.ant" ); mpg.setPackageInfo(pc); // 自定義配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; // 如果模板引擎是 freemarker // String templatePath = "/templates/mapper.xml.ftl"; // 如果模板引擎是 velocity // String templatePath = "/templates/mapper.xml.vm"; /** * 這里定義的是生成xml文檔的輸出配置,存放在resource下 */ // 自定義輸出配置 // List<FileOutConfig> focList = new ArrayList<>(); // 自定義配置會被優先輸出 // focList.add(new FileOutConfig(templatePath) { // @Override // public String outputFile(TableInfo tableInfo) { // // 自定義輸出文件名 , 如果你 Entity 設置了前后綴、此處注意 xml 的名稱會跟著發生變化??! // return projectPath + "/maven1018/src/main/resources/mapper/" + pc.getModuleName() // + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML; // } // }); /* cfg.setFileCreate(new IFileCreate() { @Override public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) { // 判斷自定義文件夾是否需要創建 checkDir("調用默認方法創建的目錄,自定義目錄用"); if (fileType == FileType.MAPPER) { // 已經生成 mapper 文件判斷存在,不想重新生成返回 false return !new File(filePath).exists(); } // 允許生成模板文件 return true; } }); */ // cfg.setFileOutConfigList(focList); // mpg.setCfg(cfg); // 配置模板 TemplateConfig templateConfig = new TemplateConfig(); // 配置自定義輸出模板 //指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據使用的模板引擎自動識別 // templateConfig.setEntity("templates/entity2.java"); // templateConfig.setService(); // templateConfig.setController(); templateConfig.setXml( null ); mpg.setTemplate(templateConfig); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); // strategy.setSuperEntityClass("你自己的父類實體,沒有就不用設置!"); strategy.setEntityLombokModel( true ); strategy.setRestControllerStyle( true ); // 公共父類 // strategy.setSuperControllerClass("你自己的父類控制器,沒有就不用設置!"); // 寫于父類中的公共字段 // strategy.setSuperEntityColumns("id"); //注釋這行否則生成的實體類中沒有Id變量 strategy.setInclude(scanner( "表名,多個英文逗號分割" ).split( "," )); strategy.setControllerMappingHyphenStyle( true ); strategy.setTablePrefix(pc.getModuleName() + "_" ); mpg.setStrategy(strategy); mpg.setTemplateEngine( new FreemarkerTemplateEngine()); mpg.execute(); } } |
5. 代碼生成后的配置
strategy.setSuperEntityColumns("id");
1 2 3 4 5 6 7 8 9 |
@SpringBootApplication @MapperScan ( "com.example.crount.mapper" ) public class Demo1018Application { public static void main(String[] args) { SpringApplication.run(Demo1018Application. class , args); } } |
另外自己要運行代碼進行數據庫訪問,所以application.properties中也要配置數據源
?1 2 3 4 5 6 7 8 |
# 數據庫配置 spring.datasource.url=jdbc:mysql: ///temporary?characterEncoding=utf-8&useSSL=false spring.datasource.driver- class -name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password= 12345 #連接池配置 #spring.datasource.type=com.alibaba.druid.pool.DruidDataSource |
6.controller開發
注入service,修改訪問的地址,寫入訪問的方法
?1 2 3 4 5 6 7 8 9 10 11 12 13 |
@RestController public class StudentController { @Autowired private IStudentService studentService; @GetMapping ( "/demo1" ) public String m1(){ Student student = studentService.getById( 3 ); return student.getSSex(); } } |
7.生成的代碼放到主配置類的同級目錄下,運行代碼
到此這篇關于SpringBoot下使用MyBatis-Puls代碼生成器的方法的文章就介紹到這了
2020-11-11
Vue3 響應式偵聽與計算的實現2020-10-19
詳解mybatis-plus配置找不到Mapper接口路徑的坑2020-10-19
springboot+mybatis-plus 兩種方式打印sql語句的方法Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環境變量的詳細教程...
2020-10-19