SpringBoot(5)—— 整合 MyBatisPlus

本文详细介绍了如何在SpringBoot项目中整合MyBatisPlus,从概述到具体的实现步骤,包括创建新模块、数据库表设计、配置信息、实体类与DAO类的创建,以及测试案例的编写和执行,帮助开发者快速理解和使用MyBatisPlus。
摘要由CSDN通过智能技术生成

SpringBoot(5)—— 整合 MyBatisPlus

1. MybatisPlus 概述

  • MybatisPlus 与 Mybatis 的区别
    • 导入坐标不同
    • 数据层实现简化

2. 实现步骤

2.1 创建新模块

信息如下:

这里的服务器地址用的是阿里云的,因为 Spring 官方没有收录 MyBatisPlus

image-20220205172411133

起步依赖勾选 关系型数据库 - MyBatisPlus关系型数据库 - MySQL Driver

再手动引入 lombok 依赖。

2.2 创建数据库表

image-20220205182502466

初始化数据库:

image-20220205183905307

2.3 配置相关信息、实体类

配置 application.yml 信息如下:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/xxm_springboot?serverTimezone=UTC
    username: root
    password
### Spring Boot 整合 MyBatis Plus 并指定代码生成模板 在Spring Boot项目中整合MyBatis Plus并利用其AutoGenerator工具来自动生成代码,能够显著提高开发效率。为了进一步定制化这些自动生成的文件,比如修改默认的命名策略或是调整生成路径等,则需了解如何设置特定的代码生成模板。 #### 添加所需依赖项 确保`pom.xml`文件内含了必要的Maven依赖以引入MyBatis Plus及其代码生成模块: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.version}</version> </dependency> <!-- 用于代码生成 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis.plus.generator.version}</version> </dependency> <!-- 模板引擎, 如Freemarker 或 Velocity --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>${freemarker.version}</version> </dependency> ``` #### 编写Java程序启动代码生成器 下面是一段完整的Java代码片段,展示了怎样通过编程方式配置和执行MyBatis Plus的代码生成功能,并指定了不同的模板选项: ```java import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.bottomAnchor.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.TemplateConfig; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class CodeGenerator { public static void main(String[] args) { // 自定义需要填充的内容 String packageName = "com.example"; boolean serviceNameStartWithI = false; // User -> UserService, 设置true: IUserService // 获取数据源配置 DataSourceConfig dsc = new DataSourceConfig() .setDbType(DbType.MYSQL) .setTypeConvert(new MySqlTypeConvert()) .setDriverName("com.mysql.cj.jdbc.Driver") .setUsername("root") .setPassword("password") .setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"); StrategyConfig strategy = new StrategyConfig() .setNaming(NamingStrategy.underline_to_camel) .setColumnNaming(NamingStrategy.underline_to_camel) .setEntityLombokModel(true) .setRestControllerStyle(true); PackageConfig pc = new PackageConfig() .setModuleName(null) .setParent(packageName); TemplateConfig templateConfig = new TemplateConfig(); templateConfig.setController("/templates/controller.java"); templateConfig.setService("/templates/service.java"); templateConfig.setServiceImpl("/templates/serviceImpl.java"); templateConfig.setMapper("/templates/mapper.java"); templateConfig.setXml("/templates/mapper.xml"); templateConfig.setEntity("/templates/entity.java"); GlobalConfig gc = new GlobalConfig() .setAuthor("Your Name") .setOpen(false) .setFileOverride(true) .setActiveRecord(true) .setEnableCache(false) .setBaseResultMap(true) .setBaseColumnList(true) .setSwagger2(true); InjectionConfig cfg = new InjectionConfig((map) -> {}); AutoGenerator mpg = new AutoGenerator().setGlobalConfig(gc).setDataSource(dsc).setPackageInfo(pc).setCfg(cfg).setTemplate(templateConfig).setStrategy(strategy); mpg.execute(); } } ``` 这段代码不仅设置了基本的数据源连接参数、全局配置属性以及名映射关系,还特别强调了对`TemplateConfig`对象的操作——即允许用户自行设定各个组件所使用的具体模板位置[^1]。 对于想要深入理解或修改生成逻辑的人来说,在上述基础上还可以继续探索更多高级特性,例如注入额外变量至模板上下文中以便于动态控制输出内容;或者基于业务场景需求调整表/列过滤规则等等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值