千家信息网

Spring Boot 2.x中怎么整合Mybatis-Plus

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,这篇文章将为大家详细讲解有关Spring Boot 2.x中怎么整合Mybatis-Plus,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Mybati
千家信息网最后更新 2025年01月29日Spring Boot 2.x中怎么整合Mybatis-Plus

这篇文章将为大家详细讲解有关Spring Boot 2.x中怎么整合Mybatis-Plus,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Mybatis-Plus的作用

可以看到,它给我们提供了一些核心的功能:代码生成器和现成的CRUD接口以及可以结合Lambda的条件构造器使我们的代码变得足够优雅,分页的使用也是相当的方便,以及提供了不同的主键生成策略。 如果这些功能不能满足我们的需求,Mybatis-Plus还提供了丰富的插件供我们去使用,我们接下来只讲核心功能,插件的使用会在后面的文章中进行部分的讲解,感兴趣的同学可以先去看一下官方的文档。

使用第一步:引入POM

首先我们需要引入POM,我在这里引用的是最新版本的:

接着,如果我们需要使用代码生成器,需要引入模板引擎的依赖:

到此,pom的引入就告一段落,下面我们来看一下配置文件的编写:

使用第二步:编写配置文件

这里我们使用的是application.yml作为配置文件,而非新建Spring Boot 项目默认的application.properties,这里如果不会新建一个Spring Boot项目,可以去参考本系列教程的第一篇文章

在这里可以进行打印SQL的配置,便于我们进行排查问题。

使用第三步:建表

使用第四步:使用代码生成器

直接贴出我的代码生成器代码:

public class MpGenerator {    public static void main(String[] args) {        GlobalConfig config = new GlobalConfig();        String dbUrl = "jdbc:mysql://localhost:3306/viboot?useSSL=false";        DataSourceConfig dataSourceConfig = new DataSourceConfig();        dataSourceConfig.setDbType(DbType.MYSQL)                .setUrl(dbUrl)                .setUsername("root")                .setPassword("Passw0rd")                .setDriverName("com.mysql.cj.jdbc.Driver");        StrategyConfig strategyConfig = new StrategyConfig();        strategyConfig                .setCapitalMode(true)                //这里结合了Lombok,所以设置为true,如果没有集成Lombok,可以设置为false                .setEntityLombokModel(true)                .setNaming(NamingStrategy.underline_to_camel);        //这里因为我是多模块项目,所以需要加上子模块的名称,以便直接生成到该目录下,如果是单模块项目,可以将后面的去掉        String projectPath = System.getProperty("user.dir") + "/viboot-mybatis-plus";        // 自定义配置        InjectionConfig cfg = new InjectionConfig() {            @Override            public void initMap() {            }        };        // 如果模板引擎是 freemarker        String templatePath = "/templates/mapper.xml.ftl";        // 如果模板引擎是 velocity        // String templatePath = "/templates/mapper.xml.vm";        // 自定义输出配置        List focList = new ArrayList<>();        // 自定义配置会被优先输出        focList.add(new FileOutConfig(templatePath) {            @Override            public String outputFile(TableInfo tableInfo) {                // 自定义输出文件名                return projectPath + "/src/main/resources/mapper/" + "user"                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;            }        });        cfg.setFileOutConfigList(focList);        //设置作者,输出路径,是否重写等属性        config.setActiveRecord(false)                .setEnableCache(false)                .setAuthor("viyoung")                .setOutputDir(projectPath + "/src/main/java")                .setFileOverride(true)                .setServiceName("%sService");        new AutoGenerator()                .setGlobalConfig(config)                .setDataSource(dataSourceConfig)                .setStrategy(strategyConfig)                .setTemplateEngine(new FreemarkerTemplateEngine())                .setCfg(cfg)                //这里进行包名的设置                .setPackageInfo(                        new PackageConfig()                                .setParent("indi.viyoung.viboot.mybatis")                                .setController("controller")                                .setEntity("entity")                                .setMapper("mapper")                                .setServiceImpl("service.impl")                                .setService("service")                ).execute();    }}

下面我们来运行main方法,就可以看到生成的包:

mapper包下面xml包删掉,因为我们已经在resources中生成了*mapper.xml文件。 这里需要注意,需要在SpringBoot的启动类上配置MapperScan来帮助我们去找到持久层接口的位置。

使用第四步:编写查询列表进行测试

没错,我们只需要写一行代码就可以获取到我们想要的列表,下面我们来访问一下

IService与BaseMapper

有些人可能会好奇,为什么我们只需要在controller层中直接去调用就可以获得到列表,这是因为Mybatis-Plus给我们封装了一系列的CRUD的基础接口,在通过代码生成器生成的UserService接口实际上是继承了IService接口的,而UserServiceImpl则是继承ServiceImpl,所以就可以获取到一些基础的实现。

IService则给我们提供了以下方法来实现基础的CRUD:

同样的,BaseMapper接口也提供了一些实现:

通过这些基础的实现,我们可以完成日常中大部分的基础查询,而省去了编写Service和ServiceImpl的时间,从编码效率上来讲比起JPA更胜一筹。

条件构造器

条件构造器可以构造一些查询条件来获取我们指定的值,同时可以结合Lambda表达式来使用,下面我们直接来编写两个例子:

可以看到,被注释掉的部分是不使用Lambda表达式的写法,这样的写法存在魔法值,而且会由于粗心写错column的名称而导致错误,但是使用Lambda表达式就足够直观的可以看出我们是想查询出userName = ?的数据,下面,我们来运行一下,看看结果是否符合我们预期的那样

当然,条件构造器的用法还有许许多多,这里就不在一一罗列,有需要的同学可以去官网查看文档

分页查询

如果我们需要分页查询数据去渲染表格,可以使用Mybatis-Plus自带的分页插件:

在启动类中加入上面的代码,然后我们就可以去使用分页了:

我们只需要构建一个Page对象,并初始化我们所需的页数(page)和每页数据量(pageSize),然后将其作为page()方法的参数传入即可 下面,我们来访问一下:

关于Spring Boot 2.x中怎么整合Mybatis-Plus就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

代码 生成 配置 接口 查询 基础 文件 条件 生成器 项目 构造器 输出 功能 引擎 插件 数据 文章 方法 模块 模板 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 课程表数据库设计字段 erp服务器怎么重装系统 微谱数据库昆明理工大学 允许qq打开移动数据库 普陀区智能网络技术值多少钱 mt4服务器地址查询 腾讯邮件接收服务器 淘宝客的服务器怎么用 软件开发演示java 互联网项目和软件开发 某煤气公司送气管理系统数据库 linux服务器生产厂商有哪些 西安智乐互娱网络技术有限公司 网络安全管理工作年鉴 中国国民体质数据库 数据库如何只显示日期不显示时间 我的世界大型mod服务器 c 桌面软件开发 养老软件开发就选 青岗科技 软考数据库看什么书 金山区新能源网络技术创造辉煌 雅江住宿软件开发 高级软件开发计算机应用技术 列举SQL的数据库对象及作用 关于计算机网络安全的设备有哪些 泰安量化积分管理软件开发系统 如何把主机变成ftp服务器 最新办公软件开发 数据库中视图怎么建立 记忆棒数据恢复软件开发
0