首页 > 其他分享 >spring boot项目使用mybatis-plus代码生成实例

spring boot项目使用mybatis-plus代码生成实例

时间:2022-10-09 14:34:07浏览次数:94  
标签:代码生成 generator spring builder boot plus mybatis baomidou com

前言

mybatis-plus官方地址

https://baomidou.com

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

安装依赖

mybatis-plus-generator

<!-- more -->


<!-- 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

文章博客地址:spring boot项目使用mybatis-plus代码生成实例

项目源码包含了swagger,后续更新关于spring boot集成swagger基础实例

欢迎关注公众号:程序员布欧,不定期更新技术入门文章

创作不易,转载请注明出处和作者。

标签:代码生成,generator,spring,builder,boot,plus,mybatis,baomidou,com
From: https://blog.51cto.com/u_15614290/5739723

相关文章

  • SpringBoot 后台服务端 杂记
    由于公司人手不足,导致桌面应用、微信小程序以及两端对应的服务端都由我自己开发。为了加快开发进度,采用SpringBoot+SpringSecurity+JWT的方式(桌面应用的服务端,微信小......
  • SpringBoot 下载文件
    下载文件  SpringBoot接口输出文件流&Vue下载文件流,获取Header中的文件名@SpringBootTestclassDownloadTests{Loggerlogger=LoggerFactory.getLogger......
  • springboot中对各个层的理解
    springboot中对各个层的理解1、entity层:实体层,数据库在项目中的类。也被称为model层,pojo层。用于定义与数据库对象的属性,提供get/set方法,带参和无参的构造方法。一般数......
  • SpringMVC
    SpringMVC:https://www.cnblogs.com/henuliulei/p/14643052.html作用:1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行......
  • springboot整合ssm详细讲解
    SSM是企业中广泛应用的框架。大家再熟练地使用SSM进行业务逻辑开发的时候,也被它大量的xml配置困扰。今天快速优雅的使用SpringBoot实现简易的SSM工程。废话不多说,comeon开......
  • Springboot整合缓存
    一、缓存的引入一个应用主要瓶颈在于数据库的IO,大家都知道内存的速度是远远快于硬盘的速度(即使固态硬盘与内容也无法比拟)。应用之中经常会遇到返回相同的数据(数据字典,行政......
  • 利用 spring 的 bean 和策略模式优雅的写出可扩展的代码
     代码的的其中有个设计原则就是:开闭原则。 我们在开发过程中经常会遇到这样的问题:就是往往需要有不同的计算方案,比如促销方案,打折。 这个例子就是通过利用 spring ......
  • spring 源码之 IOC 容器的初始化过程
     学习 spring源码真的是一件痛并快乐的刺激的事。昨天听了别人的视频,任然是一头雾水,层次不一样,就不太容易接受。直接打开spring源码,断点调试,有点难度。于是又捧起书,《深......
  • Springboot创建项目(idea版本)
    一:概述由于springboot项目,不管是java工程还是web工程都可以直接以jar方式运行,所以推荐创建jar工程,这里创建jar工程项目为例。二:两种方式创建springboot项目1.第一种方式手动......
  • Spring多数据源配置
    Spring多数据源配置,这里持久层框架使用mybatis,集成Mybatis多数据源有两种方式:1、创建多个SqlSessionFactory,扫描每个SqlSessionFactoryBean对应的包,形成了每个Factory对应一......