代码生成器

1.依赖

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    </dependency>
    <!--mybatis-plus 代码生成器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
    </dependency>
    <!-- Mybatis Plus 代码生成器模板引擎, 逆向工程 -->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

2.在test目录中创建测试用例,并执行

public class GenerateTest {
 @Test
   public void genCode() {// 1、创建代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 2、全局配置
    GlobalConfig gc = new GlobalConfig();
    //获取当前工作目录全路径:D:\project-test\250417srb\server-core
    String projectPath = System.getProperty("user.dir");
    //配置输出逆向工程文件的路径
    gc.setOutputDir(projectPath + "/src/main/java");
    //每个文件中注释的作者名
    gc.setAuthor("Sofia");
    gc.setOpen(false); //生成后是否打开资源管理器
    //将逆向工程的业务类名称中的I字母使用字符串去掉
    gc.setServiceName("%sService");	//去掉Service接口的首字母I
    gc.setIdType(IdType.ASSIGN_ID); //主键策略 使用雪花算法
    gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型使用java.util.Date
    //在javabean中使用swagger注解描述属性
    gc.setSwagger2(true);//开启Swagger2模式
    mpg.setGlobalConfig(gc);

    // 3、数据源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl("jdbc:mysql://192.168.225.131:3396/srb?serverTimezone=GMT%2B8&characterEncoding=utf-8");
    dsc.setDriverName("com.mysql.cj.jdbc.Driver");
    dsc.setUsername("root");
    dsc.setPassword("123456");
    dsc.setDbType(DbType.MYSQL);
    mpg.setDataSource(dsc);

    // 4、包配置
    PackageConfig pc = new PackageConfig();
    pc.setParent("com.example.srb.core");
    pc.setMapper("mapper");
    pc.setEntity("pojo.entity"); //此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
    mpg.setPackageInfo(pc);

    // 5、策略配置
    StrategyConfig strategy = new StrategyConfig();
    strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略

    strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
    //javabean的get set方法使用lom'bok注解
    strategy.setEntityLombokModel(true); // lombok
    //javabean中的is_deleted 属性上会添加@TableLogic
    strategy.setLogicDeleteFieldName("is_deleted");//逻辑删除字段名
    strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去掉布尔值的is_前缀(确保tinyint(1))
   //controller上的注解使用@RestController 映射路径使用的时表名转换的
    strategy.setRestControllerStyle(true); //restful api风格控制器
    mpg.setStrategy(strategy);

    // 6、执行
    mpg.execute();
}}
posted @ 2025-04-18 17:05  必行之码  阅读(23)  评论(0)    收藏  举报