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 ...
随机推荐
- 设置Mysql sort_buffer_size参数
按照官网的解释:Each session that must perform a sort allocates a buffer of this size. sort_buffer_size is n ...
- 升级pip报错ERROR: Could not install packages due to an OSError: [WinError 5]
今天在安装python第三方库时,提示pip需要升级,没有多想直接升级,结果报错: 1 ERROR: Could not install packages due to an OSError: [Wi ...
- Linux中Python自动输入sudo 密码【管道 sudo参数 stdin&stdout】
一.背景和需求 背景: 由于docker服务进程都是以root帐号的身份运行的,所以用docker跑abpred出来的文件所有者都是root, 而我作为一般用户,操作这个文件不够权限,运行代码时需要s ...
- Android 为什么事件分发的入口函数是dispatchTouchEvent
参考:https://xiaozhuanlan.com/topic/8946537021 从触摸屏幕到事件在底层传输最终会到: private int processPointerEvent(Queu ...
- DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调
又一个针对LoRA的改进方法: DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Lo ...
- 吃透Redis面试八股文
Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Re ...
- redission分布式redis锁使用
public void lock(String key, List<Long> idx) { if (CollectionUtils.isEmpty(idx)) { return; } i ...
- [C++基础入门] 7、 指针
文章目录 7 指针 7.1 指针的基本概念 7.2 指针变量的定义和使用 7.3 指针所占内存空间 7.4 空指针和野指针 7.5 const修饰指针 7.6 指针和数组 7.7 指针和函数 7.8 ...
- windows11 下使用 阿里云 modelscope docker 环境 运行参考
昨天看视频 我们做了个能对话的AI派蒙,免费给大家玩! 发现阿里有一个语音转文字的模型(paraformer),之前处理这种需求一直都是直接调用服务商提交好的API接口 突然想尝试一下本地搭建,虽然和 ...
- 如何在SpringBoot项目中兼容Jersey和SpringMVC框架?
文章目录 Jersey框架介绍 常用的注解: SpringBoot中SpringMVC兼容Jersey 整合Jersey REST(Representational State Transfer)表象 ...