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

简单介绍My—Batis

1.什么是My—Batis?

My—Batis是一个持久层框架,提供了sql映射功能,能方便的将数据库表和java对象进行映射,通过My—Batis可以将项目中的数据存储在数据库中,以便我们进行调用。值得注意的是My—Batis和spring不是一回事,它们完全是两个框架,并不是说使用My—Batis就一定要用spring框架,不过我们后面进行代码演示时会用到spring框架的测试环境,

2如何使用My—Batis

利用My—Batis操作数据主要有两种方法:注解法和xml文件法,接下来我们一 一讲解。

3.使用注解实现crud

补充:要用的数据表
在这里插入图片描述
在实际项目中,我们处理数据的逻辑是:Controller—>Service—>Mapper(Mapper层有很多接口,每个接口对应一张表的业务逻辑)
也就是说当我们Controller层接收到请求后,会调用Service层进行业务逻辑处理,而Service进行处理时又往往会调用Mapper层方法,Mapper层就是我们真正使用注解写方法的地方,举个例子:
在这里插入图片描述
如上图:当用户访问getUserInfo方法时想要用数据库中获取用户信息就会调用userInfoService层的方法在这里插入图片描述
看!在Sservice层中调用了userInfoMapper层的方法
在这里插入图片描述

而Mapper层中的UserInfoMapper接口就实现了该方法,使用注解查询了用户信息。

3.1@select

补充:select语法:
select 字段名1, 字段名2, …
from 表名
where 条件;

顾名思义,就是进行查询操作,我们观察上图的数据表,要想查询用户表的gender为1的用户的所有信息该怎么写呢?
1.在Controller层写方法,传参数为1,调用Service层中方法
在这里插入图片描述

在这里插入图片描述
Service层中调用Mapper层方法,注意返回值类型,因为gender为1的数据肯定不止一个,所以我们用List接收

在这里插入图片描述
上面写的这个属于带参查询,注意第一个gender是指表中字段名,第二个gender就是我们传 的参数。gender=#{gender}经过编译后就成了gender=1,为什么要用#{]将参数括起来?嗯格式就是这么规定 的,你要用这个框架就要按这个格式写,总比手撕JDBC强吧。。
当然我们也可以传多个参数,中间使用and连接就好。

3.2@delete

补充delete语法:
delete from 表名
where 条件

;
这个注解用于进行删除操作,我们照例进行代码演示,不过由于Controller—>Service—>Mappe有点麻烦,我们可以直接在Mapper接口中写方法,然后借助spring框架 中的test测试环境进行演示,具体步骤如下:
1.在接口中写delete方法
在这里插入图片描述
2.生成test方法
首先鼠标右键单击——找到并点击Generate——点击Test——根据方法名找到方法并勾选——点击OK(弹出ERROR是正常的,接着 OK就行)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
随后在Test文件夹中对应接口生成的Test文件中就可以找到该方法,好处显而易见:我们可以直接测试该方法是否生效(通过刷新数据库),而不用在Controller层和Service层再写然后通过http请求调用该方法以测试方法是否生效。

3.测试delete方法
在这里插入图片描述
执行前:
在这里插入图片描述
执行后:
在这里插入图片描述
可以看到Id为20的用户信息已经被删除了 。

3.3@update

My—Batis能够将sql数据库表与java对象进行映射,可能在前两个注解我们体会不到这重意思,但是从这个注解我们就能感受到My—Batisd的便捷性,

更新数据库表中信息我们采取什么方式?一张表对应一个类,对于user_info表我们创建一个userInfo类,类中属性也与表中字段名一 一对应,当然我们用小驼峰的写法而不是_.如下图:
在这里插入图片描述
注解内更新语句就按照sql语句的规则写:
update 表名
set 字段名1 = value1, 字段名2 = value2
where 条件;

在这里插入图片描述
验证时刻:
在这里插入图片描述

在这里插入图片描述

我们观察这个SQL语句:
update user_info set username=#{username},password=#{password} where id=#{id}
第一个username是指表中字段名,而#{}中的则是我们所传递的参数,其他也是同理。
一个类对应一张表,一行信息对应一个对象,我们通过New一个对象作为参数传递,通过设置这个对象的属性信息来修改表中信息,新增信息也是同理,这就是My—Batis的SQL映射的功能。

3.4@insert

insert语法规则:
insert into 表名(字段名1,字段名2,字段名3)
values (值1, 值2, 值3, …);

在这里插入图片描述

在这里插入图片描述

所以用注解写基础的crud很简单,
**@注解类型(”SQL语句“)**就OK了

3.5#{}和${}的区别

虽然我们上图使用的一直是#{},但其实我们也可以使用${}去传递参数,关于它们之间的不同请看下图:
在这里插入图片描述
在这里插入图片描述
#{}是通过占位的方式传递参数,有点类似于c语言的占位符。如果识别到传递的参数是String类型,会自动添加引号。【预编译SQL】

${}则是将接收到的参数直接拼到sql语句中。【即时SQL】

两者各有优劣,假如说我们写了一个查询语句并将查询到的信息按照自增ID降序排序,我们如果使用 order by ID #{values} 就会出现语法错误,因为你写的是字符串,编译之后就成了:
order by ID ‘desc’ ,自动多了个字符串,就很难搞,这时使用${}就很合适, 填什么就是什么。

SQL注入

但是我们为什么不常用${}?因为也会导致SQL注入问题,所谓SQL注入就是利用即时SQL的特性在参数上添加关键字来改变定义好的SQL语句,以此查询数据,攻击数据库等等。。。如下图:
在这里插入图片描述
对这个sql语句,我传的参数是:fff’ or 1=1,通过or关键字绕过了where条件审查,直接查出来了该表所有的数据,我这写的还只是username,如果是密码呢?0我这还只是查个数据?如果是修改数据呢?如果我直接删表跑路呢?

那么如何避免sql注入问题呢?

我们可以在使用${}时候对接收的参数进行检查,比如排序功能,当参数不是desc或者asc的时候直接打回。

XML文件操作数据库

1.在.pom文件中配置相关依赖,
2.然后在resoures路径下找到.yml文件,指明xml文件位置。
xml文件一当要保证在resources路径下
在这里插入图片描述
3.通过namespace将 这个xml文件与对应的Java接口绑定,如下:
在这里插入图片描述

然后接口我们依然建在Mapper层,接口中写方法,方法的具体实现也就是sql语句,我们不使用注解写在方法上面,而是写在xml文件中

4.使用xml文件实现crud

4.1select

1.接口中写方法
在这里插入图片描述
可以点击generate statement或者按Alt+Enter在对应的.xml文件快捷生成具体实现方法,如下:
在这里插入图片描述

2.在标签内写sql语句就可以了,不用加引号,为什么会直接生成select标签呢?因为MyBatis发力了,简单理解就是方法名中包含select关键字,被检测到了,帮你生成的具体实现才有标签,不信你写个不包含crud的方法名,它自动生成的时候就不知道用哪个标签了,非要你去指定一下才行。
在这里插入图片描述
测试成功!

4.2delete

在这里插入图片描述
在这里插入图片描述

4.3update

在这里插入图片描述
在这里插入图片描述

4.4insert

在这里插入图片描述

在这里插入图片描述

5.动态SQL

5.1什么是动态SQL

动态SQL就是SQL语句不写死,取决于用户传递的参数,条件等等

5.1为什么要用动态SQL

假如我现在要写一个插入信息的方法,但 这个表所有字段都可以为空,那我参数列表就可以有很多中组合,难道我每一种组合都要在接口写一个对应的方法吗?嗯?要吗?回答我?look in my eyes!
额虽然这也是一种方法,,但我们作为程序员必须严格执行有懒必偷的原则

5.2动态SQL怎么写

动态SQL的实现还是依赖于一些标签实现的,标签!所以还是在SQL语句中写的。

5.3标签

这个标签有一个属性test:这个属性就用来写条件,满足这个条件我就执行标签内的内容,不满足就跳过,这样一来,我们就不用多写或者少写一个参数就写一个对应方法 了,我们直接把if标签写在参数列表中,你传递的内容有这个参数,我就在参数列表中加上这个参数。。。。。我在说什么,算了一图胜千言:

在这里插入图片描述
在这里插入图片描述
看到没,这样参数列表就不是写死的,而是可以根据你传递的参数值动态变化的,我们也不用因为多一个或者少一个参数而专门写一种方法了。

补充:传递对象也可以一定程度上解决参数写死带来的问题。

5.4

trim标签就是用来给if擦pg的,嗯。。。是这样的 ,我们接着观察上图,假如我传递参数中没有phone,那么我的sql语句多了个逗号
在这里插入图片描述
而trim标签就是解决这个问题的
在这里插入图片描述
他有四个属性,prefixoverrides表示整个语句块(被代码块包裹的部分)要去的前缀,另一个则表示要去的后缀,prefix则表示自动添加前缀,另一个则表示后缀。

所以我们就需要给之前写的sql语句把逗号这个后缀给去掉,具体实现如下图:
在这里插入图片描述

6.完结撒花

本文到此结束哩!如有不懂可评论区交流。
小白写文,如有错误欢迎指正!

相关文章:

简单介绍My—Batis

1.什么是My—Batis? My—Batis是一个持久层框架,提供了sql映射功能,能方便的将数据库表和java对象进行映射,通过My—Batis可以将项目中的数据存储在数据库中,以便我们进行调用。值得注意的是My—Batis和spring不是一回…...

案例分享|树莓派媒体播放器,重构商场广告的“黄金三秒”

研究显示,与传统户外广告相比,数字户外广告在消费者心中的记忆率提高了17%,而动态户外广告更是能提升16%的销售业绩,整体广告效率提升了17%。这一显著优势,使得越来越多资源和技术流入数字广告行业。 户外裸眼3D广告 无…...

硬件基础(5):(3)二极管的应用

文章目录 [toc]1. **整流电路****功能**:**工作原理**:**应用实例**:电路组成:整流过程:电路的应用: 2. **稳压电路****功能**:**工作原理**:**应用实例**:电路组成及功能…...

数据结构之栈的2种实现方式(顺序栈+链栈,附带C语言完整实现源码)

对于逻辑关系为“一对一”的数据,除了用顺序表和链表存储外,还可以用栈结构存储。 栈是一种“特殊”的线性存储结构,它的特殊之处体现在以下两个地方: 1、元素进栈和出栈的操作只能从一端完成,另一端是封闭的&#xf…...

vscode终端不识别npm 无法解析npm

vscode 用以管理员打开识别npm vscode 用普通用户打开不识别npm 刚换了一台新电脑,寻思安装各种环境,一顿操作猛如虎,当最后一个打开vscode后,运行项目发现,新建终端>npm run dev 无法识别。 在cmd 中 打node -…...

java泛型的协变、逆变和不变

引言 我们在看开源框架经常会看到泛型来定义数据类型。 有时候&#xff0c; <? extends T> 和 <? super T> 这样带通配符的泛型参数。 这种通配符的泛型是什么意思怎么用&#xff1f;&#xff1f;&#xff1f;&#xff1f; 概念 型变&#xff1a; 用来描述类…...

effective Java 学习笔记(第二弹)

effective Java 学习笔记&#xff08;第一弹&#xff09; 整理自《effective Java 中文第3版》 本篇笔记整理第3&#xff0c;4章的内容。 重写equals方法需要注意的地方 自反性&#xff1a;对于任何非空引用 x&#xff0c;x.equals(x) 必须返回 true。对称性&#xff1a;对于…...

Spring BeanFactoryPostProcessor 和 BeanPostProcessor有什么用?

BeanFactoryPostProcessor 和 BeanPostProcessor 都是 Spring 框架中非常重要的扩展点&#xff0c;我们在开发中可以利用 Spring 容器实例化 Bean、配置 Bean 以及初始化 Bean 的过程中进行自定义的干预。但它们的作用时机和作用对象不同。 1. BeanFactoryPostProcessor: 作用…...

Centos7 Gitlab17部署

确保你的安装源正常 1.安装依赖项 sudo yum install -y curl policycoreutils-python openssh-server openssh-clients postfix 2.安装Gitlab (1)添加仓库 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash (2) 安装Gitl…...

一文解读DeepSeek在工业制造领域的应用

引言 在当今数字化浪潮席卷全球的背景下&#xff0c;各个行业都在积极寻求创新与变革&#xff0c;工业制造领域也不例外。然而&#xff0c;传统工业制造在生产效率、质量控制、成本管理等方面面临着诸多挑战。在这一关键时期&#xff0c;人工智能技术的兴起为工业制造带来了新的…...

基于动态 FOF(基金中的基金)策略的基金交易推荐系统的设计与实现思路

下面为你呈现一个基于动态 FOF&#xff08;基金中的基金&#xff09;策略的基金交易推荐系统的设计与实现思路&#xff0c;同时给出一个简单的 Python 示例代码。 系统设计 1. 需求分析 收集各类基金的历史数据&#xff0c;涵盖净值、收益率、风险指标等。依据动态 FOF 策略…...

第一次程序Hello Python

Python环境安装 安装地址 安装地址 https://www.python.org/ 1. 安装Python 下载完成后&#xff0c;双击安装包&#xff08;如python-3.13.2.exe&#xff09;&#xff0c;按照提示进行安装。在安装过程中&#xff0c;确保勾选“Add Python to PATH”选项&#xff0c;以便在命…...

nvm 切换node 版本 但是没有带星号*

在 Windows 系统中配置 NVM_SYMLINK 环境变量的步骤如下&#xff1a; 1️⃣ 设置变量路径 变量名&#xff1a;NVM_SYMLINK 变量值&#xff1a;建议设置为 C:\Program Files\nodejs&#xff08;需与后续步骤中 NVM 配置的符号链接路径一致&#xff09; 2️⃣ 配置系统环境变量…...

Java定时任务的三重境界:从单机心跳到分布式协调

《Java定时任务的三重境界&#xff1a;从单机心跳到分布式协调》 本文将以生产级代码标准&#xff0c;揭秘Java定时任务从基础API到分布式调度的6种实现范式&#xff0c;深入剖析ScheduledThreadPoolExecutor与Quartz Scheduler的线程模型差异&#xff0c;并给出各方案的性能压…...

1.NextJS基础

NextJS注意要点 文件用来定义路由&#xff0c;folder name becomes the route name注意区分客户端渲染和服务器渲染 html渲染完成后给到客户端&#xff08;此时网页内容已经全部提供&#xff09;&#xff0c;有利于crawler和优化seo逻辑更简单request deduplication减少API请求…...

晶晨/全志/联发科芯片系列电视盒子改固件包教程

声明&#xff1a;对电视盒子进行改包&#xff08;修改固件包&#xff09;是一项有一定技术门槛且存在风险的操作&#xff0c;可能会导致盒子变砖、失去保修等问题&#xff0c;同时私自修改固件可能违反相关法律法规和使用协议。以下为你提供一个通用的大致改包教程&#xff0c;…...

2025最新3个wordpress好用的主题

红色大气的wordpress企业主题&#xff0c;适合服务行业的公司搭建企业官方网站使用。是一款专为中小企业和个人开发者设计的WordPress主题&#xff0c;旨在提供专业的网站构建解决方案。 通过此WordPress主题&#xff0c;用户可以轻松创建和维护一个专业的企业网站&#xff0c…...

GZCTF平台搭建及题目上传

前言 我用手里的Ubuntu虚拟机搭建的&#xff0c;大家根据自己的实际情况来吧 安装及部署 首先&#xff0c;你的虚拟机需要有Docker和Docker-Compose&#xff0c;前者可以看我之前的文章&#xff0c;另外一个可以输入下面的命令安装&#xff0c;注意先获取管理员权限&#xff…...

openGauss关联列数据类型不一致引起谓词传递失败

今天分享一个比较有意思的案例 注意&#xff1a;因为原始SQL很长&#xff0c;为了方便排版&#xff0c;简化了SQL 下面SQL跑60秒才出结果&#xff0c;客户请求优化 select dtcs.owner, dtcs.table_name, dtcs.column_name, dct.commentsfrom dba_tab_columns dtcsleft outer j…...

【网络安全基础学习】渗透测试工具--Burp Suite详细教程

Burp Suite与SniffMaster&#xff1a;网络安全工具的双剑合璧 Burp Suite&#xff08;简称BP&#xff09;是一款用于攻击web应用程序的集成平台。它包含了许多工具&#xff0c;并为这些工具设计了许多接口&#xff0c;以促进加快攻击应用程序的过程。然而&#xff0c;除了Burp…...

手机测试,工作中学习

要学习各种机型的截图方式、开发模式在哪。 荣耀机型&#xff1a;截图&#xff1a;关节快速敲两下。开发者模式在“系统和更新”里。 1.出现缺陷&#xff0c;需要获取日志。 学习adb生成日志&#xff1a;当测试中出现缺陷的&#xff0c;使用adb logcat -d > d:/log.txt …...

ctfshow WEB web2

1.查当前数据库名称 or 11 union select 1,database(),3 limit 1,2;#-- 得到数据库名称web2 2.查看数据库表的数量 or 11 union select 1,(select count(*) from information_schema.tables where table_schema web2),3 limit 1,2;#-- 得到数据库表数量为2 3.查表的名字 第…...

大疆上云api介绍

概述 目前对于 DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人…...

ASP.NET Web API + VUE3 整合阿里云OSS,后端API生成预签名上传Url,前端VUE进行上传

1、后端API 我用的是.net sdk6&#xff0c;所以先安装了这个Aliyun.OSS.SDK.NetCore 下面是后端生成上传Url的参考代码&#xff0c;主意request.ContentType&#xff0c;如果这里要是设置了&#xff0c;那么前端也要设置成一样的&#xff0c;如果前端是获取文件的contentType&…...

Java基础 3.22

1.break练习 //1-100之内的数求和&#xff0c;求当和第一次大于20的当前数i public class Break01 {public static void main(String[] args) {int n 0;int count 0;for (int i 1; i < 100; i) {count i;System.out.println("当前和为" count);if (count &g…...

如何快速解决 Postman 报错?

介绍一些 Postman 常见的报错与处理方法&#xff0c;希望能够对大家有所帮助。 Postman 一直转圈打不开的问题 Postman 报错处理指南&#xff1a;常见报错与解决方法...

软件性能效率测试工具有哪些?专业第三方软件检测机构推荐

在软件开发的新时代&#xff0c;软件性能效率测试已经成为每个企业不可或缺的一部分。无论是在竞争激烈的市场中&#xff0c;还是在追求卓越用户体验的过程中&#xff0c;都需要进行有效的性能测试。 一、软件性能效率测试的目标   1、响应时间&#xff1a;确保用户请求的响…...

手机销售终端MPR+LTC项目项目总体方案P183(183页PPT)(文末有下载方式)

资料解读&#xff1a;手机销售终端 MPRLTC 项目项目总体方案 详细资料请看本解读文章的最后内容。在当今竞争激烈的市场环境下&#xff0c;企业的销售模式和流程对于其发展起着至关重要的作用。华为终端正处于销售模式转型的关键时期&#xff0c;波士顿 - 华为销售终端 MPRLTC …...

redis使用

redis集群搭建可参考&#xff1a;redis集群搭建-CSDN博客 一、简述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、基于内存的高性能键值对存储系统&#xff0c;通常用作数据库、缓存和消息代理。它支持多种数据结构&#xff0c;包括字符串、哈希、列…...

深入 SVG:矢量图形、滤镜与动态交互开发指南

1.SVG 详细介绍 SVG&#xff08;Scalable Vector Graphics&#xff09; 是一种基于 XML 的矢量图形格式&#xff0c;用于描述二维图形。 1. 命名空间 (Namespace) ★ 了解 命名空间 URI&#xff1a;http://www.w3.org/2000/svg 用途&#xff1a;在 XML 或 XHTML 中区分不同标…...

从双指针到单调栈,深挖“接雨水”的算法奥秘

从双指针到单调栈&#xff0c;深挖“接雨水”的算法奥秘 大家好&#xff0c;我是你们熟悉的算法领域大牛Echo_Wish。今天我们聊聊经典题目《接雨水》&#xff08;Trapping Rain Water&#xff09;&#xff0c;不仅仅是讲解&#xff0c;而是深度对比两种高效解法&#xff1a;双…...

Labview和C#调用KNX API 相关东西

叙述:完全没有听说过KNX这个协议...................我这次项目中也是简单的用了一下没有过多的去研究 C#调用示例工程链接(labview调用示例在 DEBUG文件夹里面) 通过网盘分享的文件&#xff1a;KNX调用示例.zip 链接: https://pan.baidu.com/s/1NQUEYM11HID0M4ksetrTyg?pwd…...

Wireshark网络抓包分析使用详解

序言 之前学计网还有前几天备考华为 ICT 网络赛道时都有了解认识 Wireshark&#xff0c;但一直没怎么专门去用过&#xff0c;也没去系统学习过&#xff0c;就想趁着备考的网络相关知识还没忘光&#xff0c;先来系统学下整理点笔记~ 什么是抓包&#xff1f;抓包就是将网络传输…...

linux命令行工具进阶

文章目录 前言ssh免密登录&#xff0c;免密码登录&#xff0c;公私钥查看与修改IP地址临时修改永久修改 mount临时切换根文件系统永久切换根文件系统loop文件partedinitramfsuboot command line 前言 本文记录了一些不经常用到&#xff0c;但在某个时刻需要用到的一些指令。 免…...

【Linux文件IO】Linux中标准IO的API的描述和基本用法

Linux中标准IO的API的描述和基本用法 一、标准IO相关API1、文件的打开和关闭示例代码&#xff1a; 2、文件的读写示例代码&#xff1a;用标准IO&#xff08;fread、fwrite&#xff09;实现文件拷贝(任何文件均可拷贝) 3、文件偏移设置示例代码&#xff1a; 4、fgets fputs fget…...

【netstat和ss】Windows和Linux下的,网络连接排查简单案例

网络连接排查利器&#xff1a;netstat与ss命令详解 初识netstat&#xff1a;Windows下的网络连接查看工具 需要查看本机的网络连接情况时&#xff0c;Windows系统提供了一个非常实用的命令&#xff1a;netstat。和findstr组合形成一个有用的组合命令&#xff1a; netstat -a…...

【WPF】MVVM模式实现数据绑定以及Command事件绑定

1.引用类 using System.ComponentModel2.创建Command自定义类 public class DelegateCommand : ICommand{public bool CanExecute(object parameter){if (CanExecuteFunc null)return true;return this.CanExecuteFunc(parameter);}public event EventHandler CanExecuteChan…...

Flutter快速搭建聊天

之前项目中使用的环信聊天&#xff0c;我们的App使用的Flutter开发的 。 所以&#xff0c;就使用的 em_chat_uikit &#xff0c;这个是环信开发的Flutter版本的聊天。 一开始&#xff0c;我们也用的环信的聊天&#xff0c;是收费的&#xff0c;但是&#xff0c;后面就发现&…...

网络层之IP协议

在讨论传输层时, 我们都只讨论了发送方和接收方的问题, 而没有讨论中间的网络形态的问题. 也就是数据包如何从主机传送到主机的? 如图, 主机B发送数据到主机C, 发送报文需要进行路径选择, 主机B-> F-> G-> H-> C-> D -> 主机C 这条路径是如何被选择出来的?…...

【设计模式】策略模式(Strategy Pattern)详解

策略模式&#xff08;Strategy Pattern&#xff09;详解 一、策略模式的定义 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一组算法&#xff0c;将每个算法封装起来&#xff0c;并使它们可以相互替换&#xff0c;从而让算法的…...

Elasticsearch:构建 AI 驱动的搜索体验

Elasticsearch 介绍 当你开始使用 Elastic 时&#xff0c;你将使用 Elasticsearch Relevance Engine™&#xff08;ESRE&#xff09;&#xff0c;它专为 AI 搜索应用程序提供支持。借助 ESRE&#xff0c;你可以利用一整套开发者工具&#xff0c;包括 Elastic 的文本搜索、向量…...

数据文件误删除,OceanBase中如何重建受影响的节点

当不慎误删数据文件且当前没有现成的可替换节点时&#xff0c;在OceanBase中&#xff0c;不必急于采取极端措施&#xff0c;可以考虑运用 server_permanent_offline_time 参数&#xff0c;来重建受影响的节点。 原理&#xff1a; server_permanent_offline_time 是 OceanBase数…...

MySQL面试专题

1.什么是BufferPool&#xff1f; Buffer Pool基本概念 Buffer Pool&#xff1a;缓冲池&#xff0c;简称BP。其作用是用来缓存表数据与索引数据&#xff0c;减少磁盘IO操作&#xff0c;提升效率。 Buffer Pool由缓存数据页(Page) 和 对缓存数据页进行描述的控制块 组成, 控制…...

Redmi Note 11 T pro + 刷入 LinegaOs 22.1 记录 手机已经解锁bl.

Redmi Note 11 T pro 刷入 LinegaOs 22.1 记录 手机已经解锁bl. 获取LIneagaOS源码&#xff0c; 以及https://github.com/xiaomi-mediatek-devs 这个组织提供的代码&#xff0c;非常感谢 环境要求&#xff1a; ubuntu 22.04 需要准备的依赖 sudo apt install git curl vim…...

Python+Requests+Pytest+YAML+Allure接口自动化框架

GitHub源码地址&#xff08;详细注释&#xff09;&#xff1a;源码 调试项目python自主搭建&#xff1a;附项目源码 一、项目介绍 本项目是基于 PythonRequestsPytestYAMLAllure 搭建的 接口自动化测试框架&#xff0c;用于对 REST API 进行测试。 框架的主要特点包括&#…...

如何解决Redis缓存异常问题(雪崩、击穿、穿透)

引言 Redis作为一种高性能的内存数据库&#xff0c;被广泛应用于缓存系统的构建中。然而&#xff0c;在实际应用过程中&#xff0c;我们常常会遇到三种典型的缓存异常问题&#xff1a;缓存雪崩、缓存击穿和缓存穿透。这些问题如果处理不当&#xff0c;可能会导致系统性能下降&…...

如何使用 Postman 进行接口测试?

使用 Postman 这一工具&#xff0c;可以轻松地进行接口测试。以下是一份简单的使用教程&#xff0c;帮助你快速上手。 Postman 接口测试教程&#xff1a;详细步骤及操作技巧...

记一次线上环境JAR冲突导致程序报错org.springframework.web.util.NestedServletException

一、问题描述 有个文件导入功能&#xff0c;用到了Hutool 的加密解密功能&#xff0c;本地运行完全可以&#xff0c;但是线上报错&#xff1a;“org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFou…...

VLAN实验

一&#xff1a;实验拓扑 二&#xff1a;实验需求 1、PC1和PC3所在接口为access接口&#xff0c;属于VLAN 2 2、PC2/4/5/6处于同一网段 其中PC2可以访问PC4/5/6 PC4可以访问PC5不能访问PC6 PC5不能访问PC6 3、PC1/3和PC2/4/5/6不在一个网段&#xff0c;且可以正常通讯 4、…...

FPGA中串行执行方式之状态机

FPGA中串行执行方式之状态机 在FPGA中,默认情况下,逻辑是并行执行的,因为FPGA的硬件资源是并行的。然而,在某些情况下,你可能需要某一段逻辑以串行方式执行。这可以通过以下几种方法实现:使用状态机(Finite State Machine, FSM)​、使用计数器控制、使用流水线(Pipel…...