MybatisPlus代码生成器

发布时间:2023年12月23日

MybatisPlus代码生成器可以根据设计好数据库表,自动帮助我们完成对应表的controller层,service层,entiy层和mapper层的基础代码,简化开发

1)导入依赖

       <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>
        <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.28</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2)在启动引导类同包下创建代码生成器类CodeGenerator



import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;

import java.util.ArrayList;
import java.util.List;

public class CodeGenerator {

    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/agriculture?serverTimezone=UTC";
        String username = "root";
        String password = "513315";
        String module = ""; //  表示项目的模块名称
        String outPath = System.getProperty("user.dir") + "/" + module + "/src/main/java"; // 文件输出路径
        String parent = "com.fyt"; // 父包的名称
        String moduleName = ""; // 模块名称
        String entity = "entity";
        String mapper = "mapper";
        String service = "service";
        String serviceImpl = "service.Impl";
        String controller = "controller";
        String mapperXml = "mapper.xml";

        List<String> tables = new ArrayList<>();
        //添加需要生成的数据库表的代码
        tables.add("pasture");

    
        FastAutoGenerator.create(url, username, password)
                // 全局配置
                .globalConfig(builder -> {
                    builder.author("fyt") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(outPath) // 指定输出目录
                            .disableOpenDir(); // 生成后不打开目录
                })

                // 包配置
                .packageConfig(builder -> {
                    builder.parent(parent) // 设置父包名
                            .moduleName(moduleName) // 设置父包模块名
                            .entity(entity)
                            .mapper(mapper)
                            .service(service)
                            .serviceImpl(serviceImpl)
                            .controller(controller)
                            .xml(mapperXml);
                })
                // 策略配置
                .strategyConfig(builder -> {
                    builder.addInclude(tables) // 设置需要生成的表名
//                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                            .entityBuilder() // 开启生成实体类
                            .enableLombok() // 开启lombok模型
                            .mapperBuilder() // 开启生成mapper
                            .superClass(BaseMapper.class)
//                            .enableMapperAnnotation() // 开启mapper注解
                            .formatMapperFileName("%sMapper") // 格式化mapper名称
                            .formatXmlFileName("%sMapper") // 格式化xml的名称
                            .serviceBuilder() // 开启生成service
                            .formatServiceFileName("%sService") //格式化service接口文件名称
                            .formatServiceImplFileName("%sServiceImpl")
                            .controllerBuilder() //开启controller生成
                            .formatFileName("%sController")
                            .enableRestStyle();
                })
                .templateEngine(new VelocityTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

3)然后运行后就会发现项目中多了pasture表对应的各层代码。

4)成功生成后找到mapper包下的接口,在其加上@Mapper

5)插件推荐MybatisPlus

文章来源:https://blog.csdn.net/m0_74163986/article/details/135161938
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。