当前位置: 首页> 健康> 知识 > 网页设计网页制作_嵌入式软件开发工具有哪些_小程序定制开发公司_深圳营销型网站设计公司

网页设计网页制作_嵌入式软件开发工具有哪些_小程序定制开发公司_深圳营销型网站设计公司

时间:2025/7/8 4:17:52来源:https://blog.csdn.net/2301_78085386/article/details/144700931 浏览次数:0次
网页设计网页制作_嵌入式软件开发工具有哪些_小程序定制开发公司_深圳营销型网站设计公司

MyBatis-Plus

官方网站:MyBatis-Plus 🚀 为简化开发而生

概述

MyBatis 最佳搭档,只做增强不做改变,为简化开发、提高效率而生。简化了单表的CURD,节省了工作量,提高效率。

特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

支持数据库

在这里插入图片描述

框架结构

在这里插入图片描述

快速入门

使用MyBatisPlus的基本步骤

1.引入MyBatisPlus依赖,代替MyBatis依赖

SpringBoot2
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.9</version>
</dependency>SpringBoot3
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.9</version>
</dependency>

2.定义Mapper接口并继承BaseMapper

public interface UserMapper extends BaseMapper<User>{}

常见注解

MyBatis-Plus通过扫描实体类,并且基于反射获取实体类信息作为数据库表信息

表名约定:1.类名驼峰转下划线作为表名

2.名为id的字段作为主键

3.变量名驼峰转下划线作为表的字段名

当类不满足以上约定时需要用到标签

@TableName:用来指定表名

@Tableid(value=“id”,type=“”):用来指定表中的主键字段信息

type(AUTO:数据库自增长;INPUT:通过set方法自行注入;ASSIGN_ID:接口identifiergenerator方法nextid生成id,默认实现类为雪花算法)

@TableField:用来指定表中的普通字段信息

使用@TableField的常见场景:

1.成员变量名与数据库字段名不一致

2.成员变量名以IS开头且是boolean类型

3.成员变量与数据库关键字冲突

4.成员变量不是数据库字段

常见配置

MyBatisPlus的配置继承了MyBatis原生配置和一些自己特有的配置,需在application.yml中根据需要添加自己需要的配置

在这里插入图片描述

核心功能

MyBatisPlus支持各种复杂的where条件,可以满足日常开发的所有需求

条件构造器

1.基于QueryWrapper的查询

原始的sql语句:update user set balance=2000 where username=“jack”

QueryWrapper:

//1.要更新的数据
User user =new User();
user.setBalance(2000);
//2.更新的条件
QueryWrapper<User> wrapper =new QueryWrapper<User>().eq("username","jack") ;
//3.执行更新
userMapper.update(user,wrapper);

2.基于UpdateWrapper的更新

需求:更新id为1,2,4的用户余额,扣200

原始写法:update user set balance=balance-200 where id in(1,2,4);

UpdateWrapper:

List<Integer> ids=List.of(1,2,3);
UpdateWrapper<User> wrapper =new UpdateWrapper<User>().setsql("balance=balance-200").in("id",ids);
userMapper.update(null,wrapper);

3.基于LambdaQueryWrapper

解决了字段名写死的情况,避免硬编码

LambdaQueryWrapper<User> wrapper =new LambdaQueryWrapper<User>().select(User::getId,User::getUsername).like(User::getUsername,"0").ge(User::getBalance,1000);

QueryWrapper和LambadWrapper通常用来构建select,delete,update的where条件部分

UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用

尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码

自定义SQL

利用MyBatisPlus的Wrapper来构建复杂的where条件,然后自己定义SQL语句中的剩下部分

1.基于Wrapper构建where条件

在这里插入图片描述

2.在mapper方法参数中用Param注释声明wrapper变量名称,必须是ew

在这里插入图片描述

3.自定义SQL,并使用Wrapper条件

在这里插入图片描述

Service接口

在这里插入图片描述

在这里插入图片描述

1.自定义接口需要继承IService接口

在这里插入图片描述

2.实现类需要集成ServiceImpl实现类

在这里插入图片描述

当业务需求较简单时,可以直接在controller层调用已有的方法,例如增删改查

当业务逻辑较为复杂时,需要自定义方法,完成业务需求

IService的Lambda查询

当条件复杂时,原始的mapper文件写sql语句过于繁琐,可以采用lambdaQuery查询,条件判断便利,快速

原始的mapper文件书写sql语句:

在这里插入图片描述

采用lambdaQuery查询:

在这里插入图片描述

IService的Lambd更新

在这里插入图片描述

在书写完毕后一定要加.update()去执行语句,若不加该语句不会执行.

IService批量新增

1.普通for循环逐条插入

每次提交只交一条sql语句,速度极差,不推荐

2.MP的批量新增,基于预编译的批处理,减少网络请求次数,性能不错

3.配置JDBC参数,开启rewriteBatchedStatements=true,性能最好

扩展功能

代码生成

下载插件可以自动生成和表信息相关的实体类,实现类,接口等,减少了工作量.

在这里插入图片描述

下载完成后,选择config database配置数据库信息

在这里插入图片描述

填写jdbc连接的参数信息

在这里插入图片描述

连接成功后,点击code generator

在这里插入图片描述

填写相关信息

在这里插入图片描述

填写完毕后,点击提交生成代码.

插件功能

在这里插入图片描述

分页插件

首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件

在这里插入图片描述

分页的API

在这里插入图片描述

使用API

在这里插入图片描述

在这里插入图片描述

关键字:网页设计网页制作_嵌入式软件开发工具有哪些_小程序定制开发公司_深圳营销型网站设计公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: