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

JavaEE-MyBatis-Plus

yBatis-Plus介绍

MyBatis-Plus(简称 MP) 是⼀个 MyBatis 的增强⼯具, 在 MyBatis 的基础上只做增强不做改变, 为简化开发. 提⾼效率⽽⽣

特性:

润物⽆声: 只做增强不做改变,引⼊它不会对现有⼯程产⽣影响,如丝般顺滑.

效率⾄上: 只需简单配置,即可快速进⾏单表 CRUD 操作,从⽽节省⼤量时间.

丰富功能: 代码⽣成、⾃动分页、逻辑删除、⾃动填充、拦截器等功能⼀应俱全.

⼴泛认可: 连续 5 年获得开源中国年度最佳开源项⽬殊荣,Github 累计 16K Star

 mybatis支持的数据库mybatis-plus都支持

快速上手

准备工作

数据准备

项目准备

创建springboot⼯程

添加MyBatis-Plus和MySQL依赖, 配置数据库连接信息

<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-spring-boot3-starter</artifactId>

<version>3.5.5</version>

</dependency>

配置数据库

spring:

        datasource:

                url: jdbc:mysql://127.0.0.1:3306/mybatis_test?

characterEncoding=utf8&useSSL=false

                username: root

                password: root

                driver-class-name: com.mysql.cj.jdbc.Driver

编码 

类名也需要和表名对应,或者使用大驼峰写法,或者要与表名完全一样,不然没法匹配。

CRUD单元测试

在创建出来的SpringBoot⼯程中,在src下的test⽬录下,已经⾃动帮我们创建好了测试类 ,我们可以直接使⽤这个测试类来进⾏测试.

编写⼏个单元测试, 测试基本的CRUD功能

MyBatis-Plus复杂操作

常见注解

在上⾯的程序中, MyBatis是如何知道, 我们要操作的是哪张表, 表⾥有哪些字段呢?
我们来看下咱们Mapper的代码

 

@TableName

@TableField

@TableId

主键比较特殊,需要使用这个注解来命名,而不是和其他普通属性一样。

也可以对主键的类型进行定义,这代表这个主键是一个自增的主键。

条件构造器

条件构造器就是来构造一串条件来精准的定位到需要修改的数据。 

QueryWrapper 

 

 

 

 

 

UpdateWrapper 

 

LamdbaQueryWrapper  

 

这里将直接写参数换成,取参数的形式,可以在参数名修改的时候提示错误。

LambdaUpdateWrapper

自定义SQL

mybatis可以实现的plus都可以实现,所以plus可以可以自定义sql的,注解可以,xml也可以,包括了mybatis的全部功能,并且还做了扩展,只不过一些配置会不一样。

plus除了mybatis的传参之外还可以传递wrapper,直接构造条件,但是传递的参数名是固定的,并且,占位的变量名也是一定的

${ew.customSqlSegment}") 占位符必须是这个

 

 

 

总结

http://www.lryc.cn/news/577162.html

相关文章:

  • datax-web报错:连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境)
  • Flutter插件ios_pod
  • 跨时间潜运动迁移以实现操作中的多帧预测
  • 云效DevOps vs Gitee vs 自建GitLab的技术选型
  • 临床试验审计问题分类与整改策略
  • 高效数据采集:Python与Rust完美结合
  • 将本地仓库推送到GitHub
  • 【Pandas】pandas DataFrame attrs
  • 2025年光学工程、精密仪器与光电子技术国际会议(OEPIOT 2025)
  • 【MCP服务】蓝耘元生代 | 蓝耘MCP平台来袭!DeepSeek MCP服务器玩转大模型集成
  • Python-Word文档、PPT、PDF以及Pillow处理图像详解
  • 车载ECU刷写文件格式汇总详解
  • 博图SCL编程:结构体(STRUCT)使用详解与实战案例
  • .net实现内容推荐算法代码
  • C++ --- list
  • ES6笔记1
  • ES6从入门到精通:箭头函数
  • 【PHP】.Hyperf 框架-collection 集合数据(内置函数归纳-实用版)
  • uniapp小程序蓝牙打印通用版(集成二维码打印)
  • Day113 切换Node.js版本、多数据源配置
  • 服务器被入侵的常见迹象有哪些?
  • AdGuard Home 安装及使用
  • SimLOD代码精读(二)建立Octree之Splitting Pass分裂阶段
  • 永磁同步电机无速度算法--基于带相位补偿的鉴相重构锁相环的滑模观测器
  • 华为云Flexus+DeepSeek征文 | 基于华为云Dify-LLM搭建知识库问答助手
  • 深入解析TCP:可靠传输的核心机制与实现逻辑
  • LaTeX 常用宏包(数学论文场景)
  • MySQL索引失效场景
  • NLP自然语言处理 01 文本预处理
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符