mybatis-plus是什么框架,使用起来简单吗?文末有彩蛋
mybatis框架我们都熟悉了,是用来操作数据库的属于ORM框架。mybatis-plus是什么框架,看名称和手机似的,带有plus一定是加强版,其官网是:MyBatis-Plus (baomidou.com)

开始mybatis-plus的实践吧。
一、环境及依赖
这里,基于springboot集成mybatis-plus。先看下具体的版本,
springboot:2.3.3.RELEASE
mybatis-plus-boot-starter:3.5.0
mysql驱动:8.0.32
由于mybatis-plus是基于mybatis的,这里引入mybats-plus后就不必引入mybatis的依赖了。官网也给出了提醒,

二、配置文件
引入依赖后,下面看mybatis-plu需要哪些配置文件。由于mybatis-plus是基于mybatis的,不会对其作任何改变,所以任何mybatis的配置都不需要作改变,包括数据源的配置及mapper-locations。application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
username: root
password: 123456
type: com.zaxxer.hikari.HikariDataSource
mybatis:
mapper-locations: classpath*:mapper/*.xml
也可以使用这个配置,
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
都是可以的。另外,mybatis-plus还有很多配置,可以自行去探究。
四、使用mybatis-plus
mybatis-plus对单表CRUD提供了方便的API,已经默认了很多方法,主要体现在下面两个接口,
Service接口

Mapper接口

在单表的CRUD操作可以继承这两个接口,会少写很多代码。
看下mapper接口
package com.wcj.my.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wcj.my.entity.User;
/**
* @date 2023/6/8 15:18
*/
public interface UserMapper extends BaseMapper<User> {
}
继承了BaseMapper接口,给了一个泛型User,User则是和数据库表一一对应的实体。
看下service接口,这里做了一些处理,所以没有集成IService接口。
package com.wcj.my.service;
import com.wcj.my.dto.UserDto;
import com.wcj.my.entity.User;
import com.wcj.my.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @date 2023/6/8 15:19
*/
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public boolean saveUser(UserDto userDto){
User user=new User();
user.setUName(userDto.getName());
user.setUCode(userDto.getCode());
user.setUAge(userDto.getAge());
user.setUAddress(userDto.getAddress());
int num=userMapper.insert(user);
if(num>0){
return true;
}
return false;
}
}
最后就是controller了,就是调用Service层的接口。IService和BaseMapper接口可以选择继承,也可以不继承,根据实际情况而定。
使用mybatis-plus的一个简单插入操作就是这些了,很简单,相对于mybatis来说,多了IService和BaseMapper接口,在单表操作时会减少很多代码的编写。
除了上面的这些功能,mybatis-plus还有其他功能,像主键生成策略、自定义ID、逻辑删除等,总体来说通过官网都可以实现,这里就不一一演示了。
五、总结
mybatis-plus是对mybatis的一个增强,简化mybatis的操作,使开发更简便。
1、集成使用mybatis-plus-boot-starter依赖;
2、配置文件使用mybatis的即可,另外mybatis-plus也有自己的配置;
3、单表操作建议继承IService、BaseMapper接口;
最后,本文用到的源码均可关注下方公众号获得。另外,关注公众号回复”45“可获得一份极客时间的”mysql实战45讲“,很干的干货!

mybatis-plus是什么框架,使用起来简单吗?文末有彩蛋的更多相关文章
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...
- springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来
自己从事java开发工作也有一年多了,自己却没有亲手搭建一个完整的框架.于是今天自己动手搭建一个,过程中遇到一些问题,倒腾了大半天终于搞定了. 现在给大家分享一下过程,自己也记录下来,以后学习参考使用 ...
- Mybatis六(SSM框架)
SSM三大框架整合详细教程(SPRING+SPRINGMVC+MYBATIS) 使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么 ...
- Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建
目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...
- SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。
SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
- springboot+mybatis+maven角色权限框架
发布时间:2018-10-24 技术:springboot,mybatis,maven,shiro 概述 Springboot作为基础框架,使用mybatis作为持久层框架 使用官方推荐的th ...
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子.如果需要深入理解Unit Test的原理与艺术,请参考<The art o ...
- 缓存框架EhCache的简单使用
缓存框架EhCache的简单使用: 1.Spring和EhCache框架整合 1.1导入jar包 <dependencies> <dependency> <groupId ...
随机推荐
- Cannot read properties of undefined (reading 'toUpperCase')
无法读取 JS 中未定义的属性"toUpperCase"|鲍比哈兹 (bobbyhadz.com) 根据其中的内容找到了答案:使用了未定义的属性去使用toUpperCase()函数 ...
- 集合-LinkedHashMap 源码详细分析(JDK1.8)
1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,Linke ...
- (原创)【B4A】一步一步入门10:TabHost,标签页、标题带图标(控件篇06)
一.前言 本篇教程我们来讲一下TabHost(标签页)的基本使用方法. 相信看完的你,一定会有所收获! 本文地址:https://www.cnblogs.com/lesliexin/p/1728556 ...
- [Spring MVC]@RequestMapping 与 @RequestMapping+@RequestResponse的区别
假定:返回格式均为JSON,JSON实体对象myJson的属性有:data.message.code.status. 二者的区别在于: @RequestMapping:会在最外层包裹 data属性,将 ...
- [Java]排序算法>插入排序>【直接插入排序】(O(N*N)/稳定/N较小/有序/顺序存储+链式存储)
1 直接插入排序 1.1 算法思想 插入排序的基本思想是:每一趟将1个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止. 1.2 算法特征 属于[插 ...
- DG:windows密码文件
问题描述:搭建DG,找不到密码文件的位置,就给备库重新生成了一个密码文件,传到了备库,但是拉到了备库以后,恢复过程中,trace日志在报错,后来才知道windows下的密码文件跟linux平台下的面文 ...
- 添加索引后SQL消耗量在执行计划中的变化
不同索引的执行效率也是不一样的,下面比较三条SQL语句在正常查询与建立普通索引与位图索引后的CPU消耗量的变化,目的为了是加强对索引的理解与运用 实验步骤:1.创建有特点的大数据表.为了保证索引产生前 ...
- Torchvision datasets中的经典数据集梳理(以及与OCR相关的常用数据集整理)
这篇文章是在上班摸鱼的时候随手整理的一些常用CV数据集(文末附带我处理好的数据的下载资源) 众所周知,通过使用Torchvision,可以方便快捷地加载一些较为常用的数据集.但是(敲黑板!)如果本地没 ...
- 【介绍】C++五种迭代器
目录 1. 输入迭代器(Input Iterator): 2. 输出迭代器(Output Iterator): 3. 前向迭代器(Forward Iterator): 4. 双向迭代器(Bidirec ...
- java垃圾回收机制(面试)
1.1堆空间结构 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配.同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收.Java 堆是垃圾收集器管理的主要区域,因此 ...