springboot:自動生成mybatis-plus代碼

idea環境

第一種方法

generator插件 小鳥圖標 gui界面 mybatis generator code helper pro

第二種方法

通過配置generator文件完成,配置步驟如下

  • 首先得保證數據庫中有要生成的表,以sys_user爲例
  • 添加生成器依賴
<!--加入mybatis-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>
<!--加入mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!--代碼生成器依賴-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.2.0</version>
</dependency>
<!--添加 模板引擎 依賴,MyBatis-Plus 支持 Velocity(默認)、Freemarker、Beetl,
用戶可以選擇自己熟悉的模板引擎,如果都不滿足您的要求,可以採用自定義模板引擎。-->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.2</version>
</dependency>
  • .properties中配置數據源
# DataSource Config
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 123456
  • test中新建一個類TestMP,功能詳見註釋,更多功能訪問mybatis-plus官網
package com.example.mybatisplus_study;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class TestMP {
    //作者
    private static String author = "ChenXueJun";
    //生成位置
    private static String outPath = "D:\\MP_AutoGenerator\\";
    //驅動
    private static String driver = "com.mysql.cj.jdbc.Driver";
    //鏈接路徑
    private static String url = "jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
    //數據庫用戶名
    private static String username = "root";
    //數據庫密碼
    private static String password = "123456";
    //數據庫表的前綴
    private static String tablePrefix = "sys_";
    //需要生成的表名
    private static String [] tables = {"sys_user","sys_role"};
    //頂級包結構
    private static String parentPackage = "com.example.mybatisplus_study";
    //數據訪問層包名
    private static String dao = "dao";
    //業務層包名
    private static String service = "service";
    //實體層包名
    private static String entity = "entity";
    //控制層包名
    private static String controller = "controller";
    //mapper映射文件包名
    private static String mapperxml = "mapper";
    //模塊名
    private static String modulname = "system";

    @Test
    public void testCreat() {
        //1.全局配置
        GlobalConfig config = new GlobalConfig();
        config.setAuthor(author)//作者
                .setOutputDir(outPath)//生成路徑
                .setFileOverride(true)//文件覆蓋
                .setIdType(IdType.AUTO)//主鍵策略
                .setServiceName("%sService")
            	//設置生成的Service接口名字的首字母是否爲I,加上%s則不生成I
                .setBaseResultMap(true)//映射文件中是否生成ResultMap配置
                .setBaseColumnList(true);//生成通用sql字段
        //2.數據源配置
        DataSourceConfig dsConfig = new DataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)//設置數據庫類型
                .setDriverName(driver)//設置驅動
                .setUrl(url)//設置連接路徑
                .setUsername(username)//設置用戶名
                .setPassword(password);//設置密碼
        //3.策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setCapitalMode(true)//全局大寫命名
                .setNaming(NamingStrategy.underline_to_camel)//數據庫表映射到實體的命名策略
                .setTablePrefix(tablePrefix)//表前綴
                .setInclude(tables);//生成的表
        //4.包名策略
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent(parentPackage)//頂級包結構
                .setModuleName(modulname)
                .setMapper(dao)//數據訪問層
                .setXml(mapperxml)//mapper映射文件
                .setService(service)//業務邏輯層
                .setController(controller)//控制器
                .setEntity(entity);//實體類
        //5.綜合配置
        AutoGenerator autoGenerator = new AutoGenerator();
        autoGenerator.setGlobalConfig(config)
                .setDataSource(dsConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);
        //6.執行
        autoGenerator.execute();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章