1. 程式人生 > 實用技巧 >spring boot mybatis逆向工程

spring boot mybatis逆向工程

建立SpringBoot專案

建立一個普通的SpringBoot專案,然後引入依賴,既然要跟資料庫打交道,connector肯定不能少

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>

另外要使用mybatis-plus,當然也要引入該starter

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

由於需要用到逆向工程,所以引入依賴

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>

還需要一個模板引擎的依賴

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.1</version>
</dependency>

為了方便起見,這裡引入Lombok

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

然後編寫一個類,直接執行即可!

classAutoCode{publicstaticvoidmain(String[] args){// 1、全域性配置 GlobalConfig globalConfig=newGlobalConfig();//構建全域性配置物件 String projectPath= System.getProperty("user.dir");// 獲取當前使用者的目錄 globalConfig.setOutputDir(projectPath+"/mybatis-plus-01-start/src/main/java")// 輸出檔案路徑.setAuthor("微信搜一搜:賀賀學程式設計")// 設定作者名字.setOpen(false)// 是否開啟資源管理器.setFileOverride(true)// 是否覆蓋原來生成的.setIdType(IdType.AUTO)// 主鍵策略.setBaseResultMap(true)// 生成resultMap.setBaseColumnList(true)// XML中生成基礎列.setServiceName("%sService");// 生成的service介面名字首字母是否為I,這樣設定就沒有I// 2、資料來源配置 DataSourceConfig dataSourceConfig=newDataSourceConfig();// 建立資料來源配置 dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC").setDriverName("com.mysql.cj.jdbc.Driver").setUsername("root")      .setPassword("root").setDbType(DbType.MYSQL);// 3、包配置 PackageConfig packageConfig=newPackageConfig(); packageConfig.setParent("com.hzy").setEntity("entity").setController("controller").setService("service").setMapper("mapper");// 4、策略配置 StrategyConfig strategyConfig=newStrategyConfig(); strategyConfig.setCapitalMode(true)// 開啟全域性大寫命名.setInclude("user")// 設定要對映的表.setNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式.setColumnNaming(NamingStrategy.underline_to_camel)// 下劃線到駝峰的命名方式.setEntityLombokModel(false)// 是否使用lombok.setRestControllerStyle(true)// 是否開啟rest風格.setControllerMappingHyphenStyle(true);// localhost:8080/hello_a_2// 5、自定義配置(配置輸出xml檔案到resources下) InjectionConfig cfg=newInjectionConfig(){@OverridepublicvoidinitMap(){// to do nothing}}; List<FileOutConfig> focList=newArrayList<>(); String templatePath="/templates/mapper.xml.vm";// 自定義配置會被優先輸出 focList.add(newFileOutConfig(templatePath){@Overridepublic StringoutputFile(TableInfo tableInfo){// 自定義輸出檔名 , 如果你 Entity 設定了前後綴、此處注意 xml 的名稱會跟著發生變化!!return projectPath+"/mybatis-plus-01-start/src/main/resources/mapper/"+ tableInfo.getEntityName()+"Mapper"+ StringPool.DOT_XML;}}); cfg.setFileOutConfigList(focList);// 6、整合配置 AutoGenerator autoGenerator=newAutoGenerator();// 構建程式碼生自動成器物件 autoGenerator.setGlobalConfig(globalConfig)// 將全域性配置放到程式碼生成器物件中.setDataSource(dataSourceConfig)// 將資料來源配置放到程式碼生成器物件中.setPackageInfo(packageConfig)// 將包配置放到程式碼生成器物件中.setStrategy(strategyConfig)// 將策略配置放到程式碼生成器物件中.setCfg(cfg)// 將自定義配置放到程式碼生成器物件中.execute();// 執行!}}

執行結果如下


程式碼中的註釋比較多,我就不多說了,如果有什麼問題可以進行私信~