MyBatisPlus代碼生成器的配置與使用詳細教程

使用mybatisplus代碼生成器可大幅提升開發效率。1. 引入相關依賴,包括mybatis-plus-generator、freemarker及數據庫驅動;2. 編寫配置類設置數據源、全局配置、包名及策略,用于生成實體類、mapper、service和controller;3. 可選自定義模板以滿足編碼風格需求;4. 注意常見問題如數據庫連接、字段映射、注釋生成等,確保配置準確以提升代碼生成效果。

MyBatisPlus代碼生成器的配置與使用詳細教程

使用MyBatisPlus代碼生成器可以大幅提升開發效率,尤其在項目初期搭建階段。它能根據數據庫表結構自動生成實體類、Mapper接口、Service層、Controller層等基礎代碼,省去了大量重復勞動。

MyBatisPlus代碼生成器的配置與使用詳細教程


1. 引入依賴

要使用MyBatisPlus的代碼生成器,首先要在項目中引入相關依賴。如果你用的是maven項目,可以在pom.xml中添加以下內容:

MyBatisPlus代碼生成器的配置與使用詳細教程

<dependency>     <groupId>com.baomidou</groupId>     <artifactId>mybatis-plus-generator</artifactId>     <version>3.5.2</version> </dependency> <dependency>     <groupId>org.freemarker</groupId>     <artifactId>freemarker</artifactId>     <version>2.3.31</version> </dependency>

注意:不同版本的MyBatisPlus Generator可能對FreeMarker或其他模板引擎有不同要求,確保版本兼容性。

另外,還需要數據庫驅動依賴,比如mysql

MyBatisPlus代碼生成器的配置與使用詳細教程

<dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-Java</artifactId>     <version>8.0.26</version> </dependency>

2. 編寫配置類

接下來是編寫一個Java類來配置代碼生成器。你可以創建一個main方法運行這個類,也可以集成到spring Boot項目中作為啟動任務。

核心配置如下:

AutoGenerator generator = new AutoGenerator();  // 數據源配置 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("123456"); generator.setDataSource(dataSourceConfig);  // 全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); globalConfig.setAuthor("your_name"); globalConfig.setOpen(false); globalConfig.setServiceName("%sService"); // 去掉IService前綴 generator.setGlobalConfig(globalConfig);  // 包名配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.example.demo"); packageConfig.setModuleName("system"); generator.setPackageInfo(packageConfig);  // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); // 表轉類名策略 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 字段轉屬性名策略 strategy.setEntityLombokModel(true); // 使用Lombok strategy.setRestControllerStyle(true); // Controller為RestController風格 strategy.setInclude("user", "role"); // 需要生成的表名 generator.setStrategy(strategy);  // 執行生成 generator.execute();

幾點說明:

  • outputDir建議設置成項目的src/main/java目錄下,這樣生成的代碼可以直接使用。
  • setServiceName(“%sService”)去掉默認的I前綴,更符合多數團隊命名習慣。
  • 如果你使用Lombok,記得加上依賴,并且ide安裝了Lombok插件。

3. 自定義模板(可選)

如果默認生成的代碼風格或結構不符合你的需求,可以通過自定義模板來調整。

步驟如下:

  • 下載官方默認模板(通常是以.ftl結尾的Freemarker文件)
  • 修改模板內容,比如Controller加注解、字段描述格式化等
  • 在配置中指定模板路徑:
TemplateConfig templateConfig = new TemplateConfig(); templateConfig.setController("templates/controller.java.ftl"); generator.setTemplate(templateConfig);

這種方式適合希望統一編碼風格、添加特定注釋或字段處理邏輯的團隊。


4. 常見問題與注意事項

  • 數據庫連接失敗:檢查url、用戶名、密碼是否正確,尤其是MySQL 8以上驅動名稱應為com.mysql.cj.jdbc.Driver
  • 生成的類沒有字段:可能是表字段名和命名策略不匹配,或者未開啟自動映射
  • 字段類型不準確:有些數據庫類型如tinyint會被識別為布爾值,需要手動調整或修改模板
  • 字段注釋沒生成:確保數據庫字段設置了comment,并在策略中開啟字段注釋支持:
strategy.setEntityTableFieldAnnotationEnable(true);

基本上就這些。配置一次后,后續新增表只需要改一下strategy.setInclude(…)即可快速生成代碼。雖然看起來步驟不少,但每一步都比較直觀,關鍵在于理解各配置項的作用。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享