亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇

          系統城裝機大師 - 唯一官網:www.snowmanhill.com!

          當前位置:首頁 > 網絡編程 > JavaScript > 詳細頁面

          SpringBoot下使用MyBatis-Puls代碼生成器的方法

          時間:2020-10-19來源:www.snowmanhill.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. 代碼生成后的配置

          • 默認生成的代碼中實體類是沒有id屬性的,在代碼生成類中注釋掉strategy.setSuperEntityColumns("id");
          • 默認生成的mapper對象上是沒有@Mapper注解,需要在主配置類中加入@MapperScan注解,進行mapper掃描
          ?
          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代碼生成器的方法的文章就介紹到這了

          分享到:

          相關信息

          系統教程欄目

          欄目熱門教程

          人氣教程排行

          站長推薦

          熱門系統下載

          亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇