当前位置 : 主页 > 编程语言 > java >

SpringBoot项目使用mybatis-plus代码生成的实例详解

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 前言 安装依赖 application.yml添加配置 代码生成实例 代码生成依赖 数据源配置 globalConfig处理通用配置 packageConfig包名设置 strategyConfig配置 小结 总结 前言 mybatis-plus官方地址 https:/
目录
  • 前言
  • 安装依赖
  • application.yml添加配置
  • 代码生成实例
    • 代码生成依赖
    • 数据源配置
    • globalConfig处理通用配置
    • packageConfig包名设置
    • strategyConfig配置
    • 小结
  • 总结

    前言

    mybatis-plus官方地址

    https://baomidou.com

    mybatis-plus是mybatis的增强,不对mybatis做任何改变,涵盖了代码生成,自定义ID生成器,快速实现CRUD,自动分页,逻辑删除等功能,更多功能请查阅官方文档

    安装依赖

    mybatis-plus-generator

    <!-- mybatis plus 代码生成器 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.4</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.5.1</version>
    </dependency>
    
    

    application.yml添加配置

    针对spring boot或者mavan项目,我们需要在项目配置文件进行mybatis-plus添加配置项

    mybatis-plus:
      mapper-locations: classpath*:mapper/**/*Mapper.xml
      type-aliases-package: com.lewyon.mybatislewyon.entity

    代码生成实例

    代码生成依赖

    在代码生成之前,我们还需要添加mysql等相关包,进行导入,当前实例使用freemarker模板,因此需要添加相关依赖

    <!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
    <!-- freemarker -->
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.31</version>
    </dependency>

    数据源配置

    实例化DataSourceConfig方法对数据源进行配置,传入数据库地址和账号密码

    private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig
        .Builder("jdbc:mysql://localhost:3306/user?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "lewyon123")
        .dbQuery(new MySqlQuery()) //数据库查询
        .schema("mybatis-plus") //数据库schema(部分数据库适用)
        .typeConvert(new MySqlTypeConvert()) //数据库类型转换器
        .keyWordsHandler(new MySqlKeyWordsHandler()); //数据库关键字处理器
    
    

    globalConfig处理通用配置

    .globalConfig(builder -> {
        builder.author("lewyon") // 设置作者
                .enableSwagger() // 开启 swagger 模式
                .fileOverride() // 覆盖已生成文件
                .disableOpenDir() //禁止打开输出目录
                .outputDir(projectPath + "/src/main/java"); // 指定输出目录
    })

    packageConfig包名设置

    packageConfig配置项包括父包名,entity,service, serviceImpl, mapper层,

    xml配置,控制器controller等。

    .packageConfig(builder -> {
        builder.parent("com.lewyon.mybatislewyon") // 设置父包名
                .moduleName("user") // 设置父包模块名
                .entity("entity")
                .service("service")
                .serviceImpl("service.impl")
                .mapper("mapper")
                .xml("mapper.xml")
                .controller("controller");
    })

    strategyConfig配置

    • strategyConfig配置设置包括表名称以及表名处理
    • 格式化Service以及ServiceImpl,添加%s前缀表示去除 Service 前缀的I
    .strategyConfig(builder -> {
        builder.addInclude("user") // 设置需要生成的表名
                .addTablePrefix("t_", "c_").controllerBuilder()
                .enableHyphenStyle()
                .enableRestStyle()
                .serviceBuilder()
                .formatServiceFileName("%sService")
                .formatServiceImplFileName("%sServiceImp")
                .build();
    })
    

    小结

    以上就是关于mybatis-plus生成代码包的基础实例,完整代码如下:

    package com.lewyon.mybatislewyon;
    
    import com.baomidou.mybatisplus.generator.FastAutoGenerator;
    import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
    import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
    import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
    import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
    
    public class GeneratorCode {
        /**
         * 数据源配置
         */
        private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig
                .Builder("jdbc:mysql://localhost:3306/user?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "lewyon123")
                .dbQuery(new MySqlQuery()) //数据库查询
                .schema("mybatis-plus") //数据库schema(部分数据库适用)
                .typeConvert(new MySqlTypeConvert()) //数据库类型转换器
                .keyWordsHandler(new MySqlKeyWordsHandler()); //数据库关键字处理器
    
        public static void main(String[] args) {
            String projectPath = System.getProperty("user.dir");
            FastAutoGenerator.create(DATA_SOURCE_CONFIG)
                    .globalConfig(builder -> {
                        builder.author("lewyon") // 设置作者
                                .enableSwagger() // 开启 swagger 模式
                                .fileOverride() // 覆盖已生成文件
                                .disableOpenDir() //禁止打开输出目录
                                .outputDir(projectPath + "/src/main/java"); // 指定输出目录
                    })
                    .packageConfig(builder -> {
                        builder.parent("com.lewyon.mybatislewyon") // 设置父包名
                                .moduleName("user") // 设置父包模块名
                                .entity("entity")
                                .service("service")
                                .serviceImpl("service.impl")
                                .mapper("mapper")
                                .xml("mapper.xml")
                                .controller("controller");
                    })
                    .strategyConfig(builder -> {
                        builder.addInclude("user") // 设置需要生成的表名
                                .addTablePrefix("t_", "c_").controllerBuilder()
                                .enableHyphenStyle()
                                .enableRestStyle()
                                .serviceBuilder()
                                .formatServiceFileName("%sService")
                                .formatServiceImplFileName("%sServiceImp")
                                .build();
                    })
                    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                    .execute();
    
        }
    }
    

    mybatis-plus生成代码当前实例只针对单表查询,表字段为:id,name,这里表结构不做单独列举,需要的同学请自行建表处理。

    总结

    项目源码地址:

    https://gitee.com/lewyon/spring-note

    以上就是SpringBoot项目使用mybatis-plus代码生成的实例详解的详细内容,更多关于SpringBoot使用mybatis-plus代码生成的资料请关注自由互联其它相关文章!

    上一篇:springboot各种下载文件的方式汇总
    下一篇:没有了
    网友评论