当前位置: 首页 > news >正文

用大白话解释 持久框架Mybatis-Plus——像“瑞士军刀”一样简单

MyBatis-Plus是啥?

比喻:你有一把普通的螺丝刀(MyBatis),每次拧螺丝都要手动换刀头(写SQL和配置),而MyBatis-Plus就是一把“瑞士军刀”——把常用的刀头(数据库操作功能)都装好,随用随取,省时省力。
核心定义:
MyBatis-Plus(简称MP)是MyBatis的增强工具,在原有框架基础上封装了重复操作(如增删改查),让你少写代码、少犯错,专注业务逻辑 。

MyBatis-Plus有啥用?让数据库操作像“点外卖”一样简单

自动生成代码:

传统MyBatis需要手动写实体类、Mapper接口和XML文件,而MP能一键生成这些代码 。
示例:创建用户表后,MP自动生成对应的User类、UserMapper接口,省去手写代码的麻烦。

通用CRUD操作:

不用再写重复的增删改查SQL。继承BaseMapper后,直接调用insert()、selectById()等方法,像用手机APP下单一样方便。
例子:userMapper.selectList(null)能直接查询所有用户,无需手写SQL。

简化复杂操作:

分页查询:配置分页插件后,调用selectPage()方法即可实现分页 。
乐观锁:防止多人同时修改数据冲突,加个@Version注解就能自动处理 。

减少配置:

传统MyBatis需要配置大量XML文件,而MP通过注解和默认配置简化流程,像“自动导航”一样省心 。

MyBatis-Plus怎么用?五步搞定

比喻:组装一把瑞士军刀(配置项目) → 开始拧螺丝(写代码)。

步骤1:创建项目(买刀)

用IDEA或Spring Initializr创建一个Spring Boot项目。

步骤2:导入依赖(装刀头)

在pom.xml中添加依赖(以MySQL为例):

<!-- MySQL驱动 -->  
<dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <version>8.0.25</version>  
</dependency>  
<!-- MyBatis-Plus启动器 -->  
<dependency>  
    <groupId>com.baomidou</groupId>  
    <artifactId>mybatis-plus-boot-starter</artifactId>  
    <version>3.4.3</version>  
</dependency>  

步骤3:配置数据库(连螺丝孔)

在application.properties中配置数据库连接:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false  
spring.datasource.username=root  
spring.datasource.password=123456  

步骤4:写实体类和Mapper(装刀柄)

1.实体类:用@TableId标记主键(如自增ID):

@Data  
public class User {  
    @TableId(type = IdType.AUTO)  
    private Long id;  
    private String name;  
    private Integer age;  
    private String email;  
}  

2.Mapper接口:继承BaseMapper,直接获得CRUD方法:

@Mapper  
public interface UserMapper extends BaseMapper<User> {}  

步骤5:测试(拧螺丝)

在测试类中调用方法:

@SpringBootTest  
class MyAppTests {  
    @Autowired  
    private UserMapper userMapper;  

    @Test  
    void testSelectAll() {  
        List<User> users = userMapper.selectList(null);  
        users.forEach(System.out::println);  
    }  
}  

ps:日志不显示:在配置文件中加mybatis-plus.configuration.log-impl=StdOutImpl。
分页失效:需配置分页插件PaginationInterceptor。


文章转载自:

http://qlbFe2v5.kpygy.cn
http://zoHKGlnL.kpygy.cn
http://Q4XbyPDc.kpygy.cn
http://9JALgkkE.kpygy.cn
http://o82M7lQk.kpygy.cn
http://RMyueOSp.kpygy.cn
http://AMxk8C5X.kpygy.cn
http://ocpkJPPa.kpygy.cn
http://9uEdXB5O.kpygy.cn
http://4s3baFEv.kpygy.cn
http://tF12b5Xm.kpygy.cn
http://JFuZyOE3.kpygy.cn
http://KpUijLW8.kpygy.cn
http://lpkEhzXf.kpygy.cn
http://VTht1Np8.kpygy.cn
http://5vZbjAbU.kpygy.cn
http://whocyo4Y.kpygy.cn
http://03Nn8DxV.kpygy.cn
http://LIvwZpeQ.kpygy.cn
http://okvEA58s.kpygy.cn
http://l1klEYhK.kpygy.cn
http://m9XES6eP.kpygy.cn
http://SgWvF9XP.kpygy.cn
http://lX9Oeono.kpygy.cn
http://3xoFd5Hm.kpygy.cn
http://5Gfr3zeo.kpygy.cn
http://fJKWXBbp.kpygy.cn
http://NSGP5XmE.kpygy.cn
http://OYMIQtu3.kpygy.cn
http://TbhPNnrH.kpygy.cn
http://www.dtcms.com/a/45491.html

相关文章:

  • 风控算法技术图谱和学习路径
  • 如何在VUE框架下渲染出来一个水球图
  • MongoDB快速入门
  • 大白话React第十章React 前沿技术在企业级应用中的深度实践
  • 从FLM获取算法进行DAP脱机烧录踩坑解决总结
  • 市场成本趋势-新指标-找到成本高度集中处布局-抓主升或趋势行情,识别出货还是洗盘
  • (十 四)趣学设计模式 之 策略模式!
  • Mysql-如何理解事务?
  • JDBC 进阶
  • vulnhub靶场之【kioptrix-5】靶机
  • 纯电动商用车核心性能评价方法实现
  • uniapp 测试 IPA 包安装到测试 iPhone
  • 如何使用Docker搭建哪吒监控面板程序
  • java2025热点面试题之springmvc
  • C# 类型转换
  • vue3:四嵌套路由的实现
  • 学Java第三十天------------多态
  • 20250226-代码笔记05-class CVRP_Decoder
  • 【无人机】无人机通信模块,无人机图数传模块的介绍,数传,图传,图传数传一体电台,
  • 什么是HA
  • keil主题(vscode风格)
  • ClickHouse
  • P1123 取数游戏
  • 实战案例:排查 Java 应用 CPU 飙高问题
  • 自由学习记录(40)
  • HFSS 仿真学习1 K波段定向耦合器
  • JAVA面试_进阶部分_netty面试题
  • 【Java】多线程篇 —— 多线程的基本使用
  • 58、深度学习-自学之路-自己搭建深度学习框架-19、RNN神经网络梯度消失和爆炸的原因(从公式推导方向来说明),通过RNN的前向传播和反向传播公式来理解。
  • 商城源码的框架