springboot整合mybatis代码快速生成

这篇具有很好参考价值的文章主要介绍了springboot整合mybatis代码快速生成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

特别说明:本次项目整合基于idea进行的,如果使用Eclipse可能操作会略有不同,不过总的来说不影响。

springboot整合之如何选择版本及项目搭建

springboot整合之版本号统一管理 

springboot整合mybatis-plus+durid数据库连接池

springboot整合swagger

springboot整合mybatis代码快速生成

springboot整合之统一结果返回

springboot整合之统一异常处理

springboot整合之Validated参数校验 

springboot整合之logback日志配置

springboot整合pagehelper分页

springboot整合本地缓存

springboot整合redis + redisson

springboot整合elasticsearch

springboot整合rabbitMq

springboot整合canal实现缓存一致性

springboot整合springSecurity(前后端不分离版本)

一、为什么要使用逆向代码生成

1.代码快速生成

使用mybatis代码快速生成,能够帮我们快速逆向生成实体类、mapper、service以及controller这些基础代码。特别是当我们的项目有很多表时它能够帮助我们节省很多时间,极大的提升我们的开发效率。举个例子来说,假设我们有30张表,如果手动创建所有实体类,mapper,service以及controller再加注释的话,那么就算很快一张表也得2分钟左右吧。那这样算下来就要1个小时了。但是我们使用快速代码生成只需要2分钟就可以操作好。

2.避免拼写错误

小伙伴们应该斗深有体会,那就是很多时候我们会出现代码拼写错误。比如user有时候写成了uesr。如果我们不适用快速代码,那我们就按照上面所说的30张表来算,那最低也要创建120个类或者接口。这么大的量我觉得真没办法保证一点错都不出。所以从这个角度来说我觉得引入mybatis能够帮助我们避免很多不必要的错误拼写。

好了,接下来我们就进入今天的正题,接着使用原来项目进行今天的整合---mybatis快速代码生成。

二、pom坐标导入

这里我只粘贴了本此需要导入的依赖。一共是两个jar包。一个是mybatis-plus-generator一个是velocity-engine-core。

        <!--版本依赖管理-->
        <properties>
            <mybatis-plus-gene.version>3.4.1</mybatis-plus-gene.version>
            <velocity.version>2.0</velocity.version>
        </properties>

        <!--mybatis-plus 逆向生成-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${mybatis-plus-gene.version}</version>
        </dependency>

        <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>${velocity.version}</version>
        </dependency>        

有一点需要说明一下,因为我们使用的mybatis-plus时3.4.2版本的,但是我去查找mybatis逆向代码依赖时,没有查到对应版本。所以我就选择了一个接近的然后使用人数相对多一点的版本。经过测试没啥问题,小伙伴们可以放心使用。

springboot整合mybatis代码快速生成

 三、编写逆向代码工具类

因为代码比较少而且相对简单,所以我把所有的注释都加在类里了。这样也更方便大家理解。具体位置如下。

springboot整合mybatis代码快速生成

 逆向生成代码类代码:

package com.example.springbootdemo;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

/**
 * @description: CodeGenerator <br>
 * @date: 2022/12/25 14:19 <br>
 * @author: William <br>
 * @version: 1.0 <br>
 */
public class CodeGenerator {

    @Test
    public void run() {

        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();
        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        //获取当前项目的路径
        String projectPath = System.getProperty("user.dir");
        //拼接代码生成以后存放的目录
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("William");
        //生成后是否打开资源管理器
        gc.setOpen(false);
        //重新生成时文件是否覆盖
        gc.setFileOverride(true);
        //去掉Service接口的首字母I
        gc.setServiceName("%sService");
        //主键策略
        gc.setIdType(IdType.AUTO);
        //定义生成的实体类中日期类型
        gc.setDateType(DateType.ONLY_DATE);
        //开启Swagger2模式
        gc.setSwagger2(true);
        mpg.setGlobalConfig(gc);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8");
        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.springbootdemo");
        //pc.setModuleName("user"); //模块名,多模块开发,或者微服务模块使用,也可以配置接口版本号,例如:v1
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        //需要逆向的表名
        strategy.setInclude("user");
        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
        //strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
        strategy.setRestControllerStyle(true); //restful api风格控制器
        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
        mpg.setStrategy(strategy);


        // 6、执行
        mpg.execute();
    }
}

使用也比较简单,我们只需要修改数据库相关配置,然后把需要逆向的表配置好,直接运行就行了。

//需要逆向的表名
strategy.setInclude("user","order","goods");

这里做一下说明,就是这里可以配置多张表,只要用逗号隔开就行了。

四、测试逆向代码生成

我们可以先把原来的entity、mapper、service、controller这四个包先删除。删除以后结构如下:

springboot整合mybatis代码快速生成

 然后运行我们的逆向代码工具类。

springboot整合mybatis代码快速生成

 springboot整合mybatis代码快速生成

 springboot整合mybatis代码快速生成

 可以看到成功运行后,我们的代码以及包结构都帮我们生成了。是不是很方便。这样即使我们项目表很多也只需要运行一下就会帮我们全部生成了。

五、启动测试

最后一步,老规矩,就是启动测试一下,看看我们的项目能不能正常启动,然后再写一个测试类。测试一下。测试方法就直接写在了UserController里面了。

package com.example.springbootdemo.controller;


import com.example.springbootdemo.entity.User;
import com.example.springbootdemo.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.bytebuddy.asm.Advice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author William
 * @since 2022-12-25
 */
@Api(tags = "用户相关接口")
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;


    @ApiOperation(value = "根据用户ID获取用户信息")
    @GetMapping("/{id}")
    public String getUser(@PathVariable("id") Integer id){
        if(id == null || id <= 0){
            return "参数错误!";
        }
        User user = userService.getById(id);
        if(user == null){
            return "当前用户不存在,参数错误";
        }
        return user.toString();
    }

}

springboot整合mybatis代码快速生成

 正常启动没有问题。那我们接下来就测试一下是不是数据库查询也能正常运行。我们访问http://localhost:8080/doc.html

进行测试。

springboot整合mybatis代码快速生成

 最终测试顺利通过,没有什么问题。OK到这里我们就算正式完成了我们的整合了。在项目开发初期我们就可以使用这种方式进行快速代码生成。

个人建议,如果逆向完成了可以删除掉这个逆向依赖的jar包以及逆向的代码。因为逆向完成以后这两个包就没用了,打包部署时会占用内存,留着没有必要。

希望对大家有所帮助,如果文章对你有所帮助的话,麻烦关注一波吧~文章来源地址https://www.toymoban.com/news/detail-432799.html

到了这里,关于springboot整合mybatis代码快速生成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot的代码生成器mybatis-plus-generator-ui

    GeberatorUIServer 在springboot的test中运行 这段代码是一个用于生成 MyBatis-Plus 代码的工具类,进行解释: 这是一个名为 GeberatorUIServer 的类。 这是程序的入口方法,即 main 方法。 这段代码创建了一个 GeneratorConfig 对象,并使用链式调用的方式设置了一系列参数: jdbcUrl :数据库连

    2024年02月10日
    浏览(33)
  • 【企业级SpringBoot单体项目模板 】——Mybatis-plus自动代码生成

    😜 作           者 :是江迪呀 ✒️ 本文 : SpringBoot项目模版 、 企业级 、 模版 ☀️ 每日   一言 : 我们之所以这样认为,是因为他们这样说。他们之所以那样说,是因为他们想让我们那样认为。所以实践才是检验真理的唯一准则。 上回 我们说了一些开发规范

    2024年02月07日
    浏览(35)
  • SpringBoot 集成MyBatis-Plus-Generator(最新版3.5.2版本)自动生成代码(附带集成MyBatis-Plus)

    快速入门 代码生成器配置(新) spring boot 2.3.12.RELEASE mybatis 3.5.2 mybatis plus 3.5.2 mybatis plus generator 3.5.2 mysql 8.0.17 velocity 2.3 hutool 5.8.15 druid 1.2.8 lombok 自带 示例程序选择的技术目前各项技术的稳定版本。 相信大家厌烦重复的造轮子过程,编写与数据库表对应的实体类,接着再进

    2024年02月21日
    浏览(42)
  • SpringBoot入门篇3 - 整合junit、整合mybatis、基于SpringBoot实现ssm整合

    目录 Spring整合JUnit  SpringBoot整合JUnit 测试类注解:@SpringBootTest 作用:设置JUnit加载的SpringBoot启动类 ①使用spring initializr初始化项目的时候,添加依赖。  ②设置数据源application.yml 注意: SpringBoot版本低于2.4.3,Mysql驱动版本大于8.0时,需要在url连接串中配置时区。 ③定义数据

    2024年02月10日
    浏览(35)
  • 【SpringBoot篇】SpringBoot整合Mybatis实战

    🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 Spring Boot可以非常方便地集成MyBatis来实现对数据库的访问,从而快速搭建项目持久层。如果你也想利用Spring Boot整合MyBatis,本文将为你详细讲解整合过

    2024年02月05日
    浏览(50)
  • 【SpringBoot】SpringBoot整合Mybatis、druid

    🌕博客x主页:己不由心王道长🌕! 🌎文章说明:SpringBoot🌎 ✅系列专栏:spring 🌴本篇内容:基于SpringBoot整合Mybatis、druid🌴 ☕️每日一语:有时候,没有下一次,没有机会重来,没有暂停继续。有时候,错过了现在,就永远永远的没机会了。☕️ 🕤作者详情:作者是一名

    2024年02月10日
    浏览(29)
  • springboot整合mybatis报错

    org/mybatis/spring/boot/autoconfigure/MybatisDependsOnDatabaseInitializationDetector has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 意思就是编译时使用了61.0版本,执行时的JDK/JRE使用了52.0版本。两个办法: 升级一

    2024年02月13日
    浏览(34)
  • SpringBoot整合junit&mybatis

    回顾 Spring 整合 junit 使用 @RunWith 注解指定运行器,使用 @ContextConfiguration 注解来指定配置类或者配置文件。而 SpringBoot 整合 junit 特别简单,分为以下三步完成 在测试类上添加 SpringBootTest 注解 使用 @Autowired 注入要测试的资源 定义测试方法进行测试 创建一个名为 springboot_07_

    2023年04月09日
    浏览(40)
  • SpringBoot整合Mybatis(3000字)

    依赖导入 同时在Maven中检查一下依赖是否完全导入 配置信息(application.yml) 我们在resources目录下创建application.yml的文件 在application.yml文件中我们编写配置信息: 注意: 一定要先确认自己的Mysql版本号再去填写对应的 url 和 driver-class-name 补充:怎么查看自己的mysql版本号: win+r

    2024年02月05日
    浏览(26)
  • Mybatis与Springboot的整合

    1.导入sprinboot依赖,数据库连接依赖,mybatis依赖,junit依赖 2.编写mybatis核心配置文件(yml) 3.配置mapper映射文件,注意namespace 必须指定对应mapper接口的权限定类名,而且映射文件目录结构要与mapper接口一致,映射文件去掉xml的名称与mapper接口名称一致。 4.编写mapper接口 5.测试

    2024年01月20日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包