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 ...
随机推荐
- ABC291题解(D-G)
ABC291 D - Flip Cards Solution: 考虑DP,定义状态\(F_{i,0}\)为第\(i\)张卡片正面朝上的方案数,\(F_{i,1}\)为第\(i\)张卡片背面朝上的方案数 ...
- Github美化日记 - 又菜又爱玩
Github美化日记 - 又菜又爱玩 一.咱就说 无论是技术大牛, 或者是技术小菜, 都希望有一个好看的Github首页吧!(快说你想要! ![iShot_2023-04-05_18.58.32.mi ...
- kubernetes (k8s) v1.24.0 安装dashboard面板
kubernetes (k8s) v1.24.0 安装dashboard面板 介绍 v1.24.0 使用之前的安装方式,在安装过程中会有一些异常,此文档已修复已知问题. 下载所需配置 root@k8s ...
- panda之series结构
eries 结构,也称 Series 序列,是 Pandas 常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据值之间是一一对应的关系.Seri ...
- pandas之索引操作
索引(index)是 Pandas 的重要工具,通过索引可以从 DataFame 中选择特定的行数和列数,这种选择数据的方式称为"子集选择".在 Pandas 中,索引值也被称为标 ...
- [Linux]Linux中安装软件的方式?
近日处理安全漏洞时,出现了这样一个问题: 判断某软件组件是通过何种方式安装的. 知道是何种方式安装,才方便做进一步的解决(升级/配置/卸载等操作) 1 解压即用 例如: sublime_text.py ...
- [Windows/Linux]Linux下的正斜杠"/"和"\"的区别 [转载]
执行某一条Linux命令时,遇到了此问题,甚为不解.[文由] 本篇属于全文转载自: Linux下的正斜杠"/"和""的区别 - 博客园 >>> ...
- sip消息拆包原理及组包流程
操作系统 :CentOS 7.6_x64 freeswitch版本 :1.10.9 sofia-sip版本: sofia-sip-1.13.14 freeswitch使用sip协议进行通 ...
- .NET CORE 部署到IIS上,HTTP 错误 500.19 - Internal Server Error
经排查,是因为项目中web.config的rewrite节点不支持,注释掉此节点即可,或者尝试下载相关依赖以支持此节点
- v-if与v-show造成部分元素丢失的问题——v-if复用元素问题
pre { overflow-y: auto; max-height: 400px } img { max-width: 500px; max-height: 300px } 问题描述 在写tab切换 ...