mybatis-plugs使用手册

2023-10-14 09:30
文章标签 mybatis 使用手册 plugs

本文主要是介绍mybatis-plugs使用手册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

介绍

文档:mybatis-plugs-spring-boot-starter: mybatis-plugs支持springboot

1.对mybatis进行扩展增强

2实现mybatis的CRUD简化操作 不用在书写基本的增删改查sql 全部通过BaseMapper 实现

软件架构

软件架构说明

1.不对mybatis做任何修改 只做mybatis的扩展增强2.代码自动生成,根据表名可快速生成xxxMapper.java、xxxService.java、xxxServiceImpl.java、xxxController.java、xxxMapper.xml3.增加swagger配置方便前台调用接口4.增加logback日志记录系统运行情况 5.增加druid数据源监控sql运行情况6.本系统采用前后端完全分离的模式:前端采用vue.js框架 项目地址:https://gitee.com/wdyun/enhancevue7.用户密码采用MD5加salt的方式个人信息安全有保障8.角色绑定菜单权限 用户只能查看到所属角色绑定的菜单9.采用Redis做为缓存框架10.采用mongodb做为文件存储系统11.采样RabbitMq作为消息服务

快速开始

我们将通过一个简单的 Demo 来阐述 MyBatis-Plugs 的强大功能,在此之前,我们假设您已经:

  • 拥有 Java 开发环境、相应 IDE以及mysql数据库
  • 熟悉 Spring Boot
  • 熟悉 Maven

现有一张 User 表,其表结构如下:

idname

age

tel

1

Job

21

15764226795

2

Jack

18

15764226796

3

June

19

15764226797

4

Ann

20

15764226798

其对应的数据库 Sql 脚本如下:

     DROP TABLE IF EXISTS user ;CREATE TABLE user(id BIGINT (20) NOT NULL COMMENT '主键ID', name VARCHAR (30) NOT NULL COMMENT '姓名', age INT (11) COMMENT '年龄', tel VARCHAR (11) COMMENT '电话', PRIMARY KEY (id) )

Question

如果从零开始用 MyBatis-Plugs来实现该表的增删改查我们需要做什么呢?

创建SpringBoot项目

使用 idea 创建SpringBoot项目

第一步:

第二步:填写项目信息

第二步:选择LomBok插件

项目基本结构

配置 Maven

springBoot项目建立好之后,在pom.xml文件加入mybatis-plugs的依赖

mybatis-plugs当前版本 4.1.2

请关注mybatis-plugs最新版本 mybatis-plugs

SpringBoot

maven:

	<dependency><groupId>com.enbatis</groupId><artifactId>mybatis-plugs-spring-boot-starter</artifactId><version>1.2.1</version></dependency>

gradle:

compile(" com.enbatis:mybatis-plugs-spring-boot-starter:1.2.1 ")

小提示

引入 mybatis-plugs 之后无需再次引入mybatis

配置 yml

修改 application.properties 为application.yml

新增 开发环境: application-dev.yml

新增 测试环境: application-test.yml

新增 生产环境: application-pro.yml

小说明

1.开发环境为我们进行开发所使用的配置

2.测试环境为测试人员进行软件测试所使用的配置

3.生产环境为上线部署所使用的配置

application.yml

spring: 
   profiles: 
     active: dev 
server: 
  port: 8080

tip:

spring: profiles: active: dev 指定所使用的环境

port:8080 指定项目所启动的端口为8080端口

application-dev.yml

修改启动类

在启动类上加上Mapper扫描的注解 @MapperScan("com.enbatis.mybatisplugs.mapper")

代码生成器

我们通过数据库表可以快速生成entity,controller,mapper,service,serviceImpl,mapping.xml

说明

生成代码需要连接数据库,所以我们需要进行数据库的连接,只需要通过配置数据库基本信息,利用mybatis-plugs的代码生成类 CodeGenerator2 即可

配置代码生成器

在启动类的同级目录下 建立生成器类 CodeGenerate

import com.enbatis.mybatisplugs.generate.CodeGenerator2; 
public class CodeGenerate { 
private static String url="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC& 
useUnicode=true&characterEncoding=utf8&useSSL=false"; 
private static String user="root"; 
private static String psd="111111"; 
private static String filePath="D://generate_code//"; 
public static void main(String[] args) { 
CodeGenerator2 codeGenerator2=new CodeGenerator2(url,user,psd,filePath); 
codeGenerator2.generate(CodeGenerate.class); 

注释:

url: 数据库连接url

root: 数据库用户名

psd: 数据库密码

filePath: java代码生成位置(防止代码覆盖所以我们不会自动生成到对应的代码位置)

CodeGenerator2: mybatis-plugs代码核心生成器

如何使用?

1.执行main方法

2.在控制台输入作者 以及 要生成代码的表

3.输入完成之后点击回车

4.当输出以下信息表示代码生成成功

5.去代码生成的位置查看生成的代码

6.建立代码包:entity、controller、mapper、service、impl以及xml的文件夹

7.将生成的代码复制到对应的文件夹

8.启动项目 访问 http://localhost:8080/v1/sys_user/list 查询所有用户列表

CRUD 接口

Service CRUD 接口

说明

通过封装mybatis的 BaseService接口即可快速实现数据库的CRUD操作

泛型 T 为任意实体对象

参数 Serializable 为任意类型主键 Mybatis-Plugs 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键

对象 Wrapper 为 条件构造器

Insert

/** 
* 插入一条记录 
* @param entity 传入的插入对象 
* @return T 
*/ 
T insert(T entity); 

deleteById

/** 
* 根据id删除一条数据 
* @param id 传入的查询ID 
* @return 删除条数 
*/ 
int deleteById(Serializable id); 

updateById

/** 
* 根据id更新一条数据 
* @param bean 传入的更新对象 
* @return 返回更新条数 
*/ 
int updateById(T bean); 

update

/** 
* 批量更新数据 
* @param bean 传入的更新的内容 
* @param wrapper 传入的更新条件 
*/ 
int update(T bean,Wrapper<T> wrapper); 

list

/** 
* 查询多条数据 
* @param wrapper 查询条件 
* @return 集合 
*/ 
List<T> list(Wrapper<T> wrapper); 

page

/** 
* @param page 分页对象 
* @param wrapper 查询条件 
* @return Pages 分页数据 
*/ 
Pages<T> page(Page<T> page, Wrapper<T> wrapper); 

selectCount

/** 
* 查询count 
* @param wrapper 查询条件 
* @return 数量 
*/ 
int selectCount(Wrapper<T> wrapper); 

saveBatch

/** 
* 批量插入 
* @param entityList 
* @return 
*/ 
int saveBatch(List<T> entityList); 

扩展:

以上只列出部分条件构造器的方法,我们还有getById(根据id获取单条)、saveBatch(批量保存)等等, 更多请查看 mybatis-plugs

条件构造器 Wrapper

eq

如果我们想快速查询数据库表sys_user 的姓名为 “Tom” 如何进行操作呢?

回答:只需service调用list 传入 条件构造器Wrapper Wrapper调用 eq 方法,下面的方法即为 查询姓名是Tom的SysUser列表

sysUserService.list(new Wrapper<>(sysUser).eq("name","Tom"));

ne

如果我们想快速查询数据库表sys_user 的姓名不是 “Tom” 如何进行操作呢?

回答:只需service调用list 传入 条件构造器Wrapper Wrapper调用 ne 方法,下面的方法即为 查询姓名不是Tom的SysUser列表

sysUserService.list(new Wrapper<>(sysUser).ne("name","Tom"));

like

如果我们想根据姓名模糊查询,怎么操作呢?

回答:只需service调用list 传入 条件构造器Wrapper Wrapper调用 like 方法,下面的方法即为 根据姓名“Tom”模糊查询

sysUserService.list(new Wrapper<>(sysUser).like("name","Tom"));

in

如果我们想查询姓名是“Tom”,“Jack”,“June”怎么操作呢?

回答:只需service调用list 传入 条件构造器Wrapper Wrapper调用 in 方法,传入ArrayList即可

List arrayList=new ArrayList<>(); 
arrayList.add("Tom"); 
arrayList.add("Jack"); 
arrayList.add("June"); sysUserService.list(new Wrapper<>(sysUser).in("name",arrayList));

扩展:

以上只列出部分条件构造器的方法,我们还有notNull(非空查询)、isNull(空值查询)、setSqlSelect(固定列查询)等等, 更多请查看 mybatis-plugs

这篇关于mybatis-plugs使用手册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209633

相关文章

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

mybatis-plus分页无效问题解决

《mybatis-plus分页无效问题解决》本文主要介绍了mybatis-plus分页无效问题解决,原因是配置分页插件的版本问题,旧版本和新版本的MyBatis-Plus需要不同的分页配置,感兴趣的可... 昨天在做一www.chinasem.cn个新项目使用myBATis-plus分页一直失败,后来经过多方