Mybatis-plus 代码自动生成 存档

本文介绍了如何在SpringBoot项目中集成MybatisPlus,并利用代码生成器自动生成实体类、Mapper、Service和Controller,简化开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

框架SpringBoot,集成Mybatis Plus实现代码自动生成

 相关依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--使用mybatis plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <!--代码生成相关-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.0.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

 spring boot主配置文件

#设置开发环境
spring.profiles.active=dev

#配置数据库
spring.datasource.username=username *
spring.datasource.password=password *
spring.datasource.url=jdbc:mysql://localhost:3306/tableName?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
public class AutoGenerateCode {
    public static void main(String[] args) {
        //构建代码生成器对象
        AutoGenerator generator = new AutoGenerator();
        //配置策略

        //1.全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");//获取项目路径
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("name"); //作者
        gc.setOpen(false);
        gc.setFileOverride(false);
        gc.setServiceName("%sService");//去除service的i前缀
        gc.setIdType(IdType.ID_WORKER);
        gc.setDateType(DateType.ONLY_DATE);
        generator.setGlobalConfig(gc);

        //2.数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUrl("jdbc:mysql://localhost:3306/table?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
        dsc.setUsername("username");
        dsc.setPassword("password");
        dsc.setDbType(DbType.MYSQL);

        //3.指定生成的包
        PackageConfig pc = new PackageConfig();
        pc.setModuleName("blog");//项目模块名
        pc.setParent("com.kali");//模块下的父级目录
        pc.setEntity("pojo");//实体类包名
        pc.setMapper("mapper");//映射包名
        pc.setService("service");//service层
        pc.setController("controller");//controller层
        generator.setPackageInfo(pc);

        //4.策略配置
        StrategyConfig strategy = new StrategyConfig();
        //这是非常重要的设置,user为数据库中的表,表不同生成不同
        strategy.setInclude("user"); //设置要映射的数据库表名 支持多参数
        strategy.setNaming(NamingStrategy.underline_to_camel);//驼峰命名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);//是否使用lombok
        strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段设置
        //乐观锁
        strategy.setVersionFieldName("version");//乐观锁字段设置
        //自动填充策略
        TableFill createTime = new TableFill("create_time", FieldFill.INSERT);//插入数据时自动填充
        TableFill updateTime = new TableFill("update_time",FieldFill.INSERT_UPDATE);//更新时间 在插入和更新时自动填充
        ArrayList<TableFill> tableList = new ArrayList<>();
        tableList.add(createTime);
        tableList.add(updateTime);
        strategy.setTableFillList(tableList);//加入以上两个自动填充策略
        strategy.setRestControllerStyle(true);//是否使用@RestController
        generator.setStrategy(strategy);

        generator.execute();//执行

    }
}

 生成结构如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值