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

SpringBoot【八】mybatis-plus条件构造器使用手册!

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

        经过上一期的mybatis-plus 入门教学,想必大家对它不是非常陌生了吧,这期呢,我主要是围绕以下几点展开,重点给大家介绍 里头的条件构造器 玩法,虽然比较容易上手,但我还是会做到句句是重点!希望小伙伴们在学习的过程中学的开心,玩的愉快!

二、如何使用构造器

前言:

QueryWrapper(LambdaQueryWrapper) 和UpdateWrapper(LambdaUpdateWrapper) 的父类是AbstractWrapper,
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件。
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为。

注意二者使用区别:

1). QueryWrapper: Entity 对象封装操作类 。

2). UpdateWrapper : Update 条件封装,用于Entity对象更新操作。

一般查询构造条件使用QueryWrapper,修改类型的使用UpdateWrapper

代码演练:如下分别是使用QueryWrapper 与 UpdateWrapper来进行参数传递。

/*** 根据性别查询所有用户** @param sex 性别*/
@Override
public List getUsersBySex(String sex) {//条件构造器QueryWrapper wrapper = new QueryWrapper<>();//eq 代表“ = ”;例如 eq("sex", "男") ---> sex = '男';等同于拼接在sql语句后边的where条件。wrapper.eq("sex",sex);//将条件带入查询List list = this.list(wrapper);//返回数据return list;
}/*** 根据用户id修改用户信息** @param userId 用户id*/
public boolean updateByUserId(String userId){//条件构造器UpdateWrapper wrapper = new UpdateWrapper<>();//传入条件wrapper.eq("id",userId);//调用修改方法return this.update(wrapper);
}

三、常用的条件构造器

#eq

eq(R column, Object val)
eq(boolean condition, R column, Object val)
  • 等于 =
  • 例: eq("name", "老王")--->name = '老王'

#ne

ne(R column, Object val)
ne(boolean condition, R column, Object val)
  • 不等于 <>
  • 例: ne("name", "老王")--->name <> '老王'

#gt

gt(R column, Object val)
gt(boolean condition, R column, Object val)
  • 大于 >
  • 例: gt("age", 18)--->age > 18

#ge

ge(R column, Object val)
ge(boolean condition, R column, Object val)
  • 大于等于 >=
  • 例: ge("age", 18)--->age >= 18

#lt

lt(R column, Object val)
lt(boolean condition, R column, Object val)
  • 小于 <
  • 例: lt("age", 18)--->age < 18

#le

le(R column, Object val)
le(boolean condition, R column, Object val)
  • 小于等于 <=
  • 例: le("age", 18)--->age <= 18

#between

between(R column, Object val1, Object val2)
between(boolean condition, R column, Object val1, Object val2)
  • BETWEEN 值1 AND 值2
  • 例: between("age", 18, 30)--->age between 18 and 30

#like

like(R column, Object val)
like(boolean condition, R column, Object val)
  • LIKE '%值%'
  • 例: like("name", "王")--->name like '%王%'

#notLike

notLike(R column, Object val)
notLike(boolean condition, R column, Object val)
  • NOT LIKE '%值%'

  • 例: notLike("name", "王")--->name not like '%王%'

  • 例: notInSql("id", "select id from table where id < 3")--->id not in (select id from table where id < 3)

    groupBy(R... columns) groupBy(boolean condition, R... columns)

  • 分组:GROUP BY 字段, ...

  • 例: groupBy("id", "name")--->group by id,name

#orderByAsc

orderByAsc(R... columns)
orderByAsc(boolean condition, R... columns)
  • 排序:ORDER BY 字段, ... DESC
  • 例: orderByDesc("id", "name")--->order by id DESC,name DESC

#orderBy

orderBy(boolean condition, boolean isAsc, R... columns)
  • 排序:ORDER BY 字段, ...
  • 例: orderBy(true, true, "id", "name")--->order by id ASC,name ASC

#or

or()
or(boolean condition)
  • 拼接 OR

    注意事项:

    主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

  • 例: eq("id",1).or().eq("name","老王")--->id = 1 or name = '老王'

... ...

想要了解更多,请参考mybatis-plus 官网哈。此处就是给大家科普下项目中常用的。

四、实例演示

先造一个wrapper构造器,然后结合我上边给的常用构造器sql文档,怎么着也得把常用的api给玩一遍吧。这样后边开发项目写起来就轻松多啦!

如下wrapper的所有方法:

五、链式调用 lambda 式

  • 获取 LambdaWrapper
    QueryWrapper中是获取LambdaQueryWrapper
    UpdateWrapper中是获取LambdaUpdateWrapper

代码演示如下,改成链式写法:

public List getUsersByIdAndDate(Integer userId,Integer age){//lambda条件构造器LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();//传入条件queryWrapper.eq(UserEntity::getId,userId);queryWrapper.eq(UserEntity::getAge,age);//调用修改方法return this.list(queryWrapper);
}

说白了,lambda式玩法也一样,唯独就是你要先入门一下java8新特性之lambda表达式语法。这里就不展开讲啦,剩下来的就靠自己琢磨咯。

相关文章:

SpringBoot【八】mybatis-plus条件构造器使用手册!

一、前言&#x1f525; 环境说明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 经过上一期的mybatis-plus 入门教学&#xff0c;想必大家对它不是非常陌生了吧&#xff0c;这期呢&#xff0c;我主要是围绕以下几点展开&#xff0c;重点给大家介绍 里…...

《HTML 的变革之路:从过去到未来》

一、HTML 的发展历程 图片: HTML 从诞生至今&#xff0c;经历了多个版本的迭代。 &#xff08;一&#xff09;早期版本 HTML 3.2 在 1997 年 1 月 14 日成为 W3C 推荐标准&#xff0c;提供了表格、文字绕排和复杂数学元素显示等新特性&#xff0c;但因实现复杂且缺乏浏览器…...

给我的小程序加了个丝滑的搜索功能,踩坑表情包长度问题

前言 最近在用自己的卡盒小程序的时候&#xff0c;发现卡片越来越多&#xff0c;有时候要找到某一张来看看笔记要找半天&#xff0c;于是自己做了一个搜索功能&#xff0c;先看效果&#xff1a; 怎么样&#xff0c;是不是还挺不错的&#xff0c;那么这篇文章就讲讲这样一个搜索…...

高阶数据结构--B树B+树实现原理B树模拟实现--Java

目录 一、B-树概念 二、B-树插入分析 1.用序列{53, 139, 75, 49, 145, 36, 101}构建B树的过程如下&#xff1a; 2.插入过程总结 三、B树插入实现 四、B树 1.B树概念 2.B树的特性 五、B树应用 1.索引 2.Mysql索引 3.InnoDB 一、B-树概念 1970 年&#xff0c; R.Bayer 和…...

CTF: 在本地虚拟机内部署CTF题目docker

step 1 安装基本依赖 sudo apt-get update sudo apt-get install -y \ca-certificates \curl \gnupg \lsb-releasestep 2 安装docker sudo apt-get remove docker docker.io containerd runc sudo apt-get update sudo apt-get install \apt-transport-https \ca-certificate…...

深度学习详解

深度学习&#xff08;Deep Learning&#xff0c;DL&#xff09;是机器学习&#xff08;Machine Learning&#xff0c;ML&#xff09;中的一个子领域&#xff0c;利用多层次&#xff08;深层&#xff09;神经网络来自动从数据中提取特征和规律&#xff0c;模仿人脑的神经系统来进…...

qt QCommandLineParser详解

1、概述 QCommandLineParser是Qt框架中提供的一个类&#xff0c;专门用于解析命令行参数。它简化了命令行参数的处理过程&#xff0c;使得开发者能够轻松定义、解析和验证命令行选项和参数。QCommandLineParser适用于需要从命令行获取输入的控制台应用程序&#xff0c;以及需要…...

支撑40多个委办局150余个应用场景,AI数字笔迹在多个领域助力数字重庆建设

12月6日&#xff0c;以“聚焦创新应用&#xff0c;AI引领赋能”为主题的2024 AI数字笔迹创新应用发展论坛在重庆两江新区举办。本届论坛由重庆市大数据应用发展管理局和重庆两江新区管理委员会联合指导&#xff0c;重庆亲笔签数字科技有限公司主办。现场来自政府部门、高等院校…...

MySQL 表字段太多超长问题及解决方案

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学…...

LLM大语言模型私有化部署-OpenEuler22.03SP3上容器化部署Ollama与OpenWebUI

背景 你是不是也有私有化部署大模型的需求&#xff1f;如今有了 Ollama &#xff0c; HuggingFace &#xff0c; ModelScope 等开源平台&#xff0c;我们可以非常方便地搭建一个属于自己的大模型&#xff0c;如果网速给力&#xff0c;真是分分钟~~。简单起见&#xff0c;这篇文…...

【数据结构】哈夫曼树

哈夫曼树 路径长度&#xff1a;从树中一个结点到另一个结点之间的分支构成这两个节点之间的路径&#xff0c;路径上的分支数目称为路径长度 树的带权路径长度&#xff1a;树中所有叶子结点的带权路径长度之和&#xff0c;通常记为WPL ∑ k 1 n w k l k \sum^{n}_{k1}w_kl_k …...

网络安全法-网络运行安全

第三章 网络运行安全 第一节 一般规定 第二十一条 国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求&#xff0c;履行下列安全保护义务&#xff0c;保障网络免受干扰、破坏或者未经授权的访问&#xff0c;防止网络数据泄露或者被窃取、篡改&…...

188-下翻便携式6U CPCI工控机箱

一、板卡概述 下翻式CPCI便携工控机,系统采用6u cpci背板结构,1个系统槽,7个扩展槽, 满足对携带的需求,可装标准6U8槽CPCI主板,8个扩展槽, 满足客户对空间扩展的需求.可宽温服务的工作产品,15高亮度液晶显示屏,超薄88键笔记本键盘,触摸式鼠标,加固型机箱结构,使它能够适应各种复…...

【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 )

上一篇: 【0361】Postgres内核 page_read 读取所请求数据长度(至少 short page header)( 6 ) 文章目录 1. 检查 page_read 返回值 readLen2. 根据 readBuf 计算 XLogPageHeader 大小2.1 验证 XLOG Page header2.2 更新 XLogReaderState 读取状态信息1. 检查 page_read 返回…...

调度系统:Luigi 的主要特性和功能

Luigi 是一个开源的 Python 工作流管理工具&#xff0c;用于构建批处理作业管道&#xff0c;特别适用于数据工程领域。它被设计用来编排任务和处理任务间的依赖关系&#xff0c;支持自动化复杂的 ETL 流程、数据分析、模型训练等任务。 Luigi 的主要特性和功能&#xff1a; 任…...

GO泛型

泛型是goSDK1.18版本之后才引入的新特性&#xff0c;即C中的模板。 为什么要有泛型&#xff1f; 我们现在要写一个两数相加的函数&#xff0c;相加的逻辑很简单&#xff0c;但是如果传入不同的类型&#xff0c;那么我们就需要再写一个函数&#xff0c;定义不同的参数类型&#…...

【笔记】C语言转C++

网课链接&#xff1a;【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长&#xff1a;01:55:27 以下笔记是我通过此网课整理 建议先…...

Python 单例模式工厂模式和classmethod装饰器

前言&#xff1a; Python作为面向对象的语言&#xff0c;显然支持基本的设计模式。也具备面向对象的语言的基本封装方法&#xff1a;属性、方法、继承、多态等。但是&#xff0c;做为强大的和逐渐发展的语言&#xff0c;python也有很多高级的变种方法&#xff0c;以适应更多的…...

源码编译构建LAMP

源码编译构建LAMP 文章目录 源码编译构建LAMPLAMPDISCUZ论坛 1.安装编译工具等2.apache3.mysql4.php5.部署论坛网站6.其他6.其他 LAMPDISCUZ论坛 1.安装编译工具等 安装说明&#xff1a; 配置yum源 从阿里云下载新的配置文件 curl -o /etc/yum.repos.d/CentOS-Base.repo htt…...

如何让verilog支持二维数组,三维数组作为I/O ports

写在前面 先看看verilog中的一维数组&#xff0c;二维数组&#xff0c;三维数组长啥样&#xff1f; wire [31:0]data1;//一维数组 wire [31:0]data2 [0:15];//二维数组 wire [31:0]data3 [0:15][0:15];//三维数组众所周知&#xff0c;verilog只支持一维数组作为I/O ports&…...

字符编码讲解(C#)

在学习和编码的过程中&#xff0c;极容易遇到如下概念&#xff0c;他们有些是字符编码&#xff0c;有些是涉及的相关概念&#xff0c;接下来我将围绕下面的熟悉又陌生的概念做详细解释&#xff0c;并且梳理其之间的关系 UTF8&#xff0c; Unicode &#xff0c;ASCII&#xff0…...

Unreal Engine 中的UI界面开发

推荐的使用方式 轻量级 HUD&#xff1a;使用 Canvas 绘制简单的文本、调试信息或基础 UI&#xff08;如准星、血量条等&#xff09;。 复杂 UI&#xff1a;使用 UMG&#xff08;Unreal Motion Graphics&#xff09;和 Slate 进行布局和交互&#xff0c;避免手动管理 Canvas 绘制…...

聚类及Python下实现 K-means 算法

聚类 聚类是无监督学习中的一种重要方法&#xff0c;旨在将数据集中相似的数据对象划分到同一个簇中&#xff0c;使得不同簇之间的数据对象差异尽可能大。在大数据环境下&#xff0c;聚类可以帮助挖掘数据中的隐藏结构和模式&#xff0c;应用场景十分广泛&#xff0c;比如在客…...

【中间件开发】Redis基础命令详解及概念介绍

文章目录 前言一、Redis相关命令详解及原理1.1 string、set、zset、list、hash1.1.1 string1.1.2 list1.1.3 hash1.1.4 set1.1.5 zset 1.2 分布式锁的实现1.3 lua脚本解决ACID原子性1.4 Redis事务的ACID性质分析 二、Redis协议与异步方式2.1 Redis协议解析2.1.1 redis pipeline…...

分布式文件存储 - - - MinIO从入门到飞翔

MinIO从入门到飞翔 文章目录 MinIO从入门到飞翔 0、前言1、分布式文件系统2、MinIO 介绍3、 MinIO安装&#xff08;docker&#xff09;4、基本概念5、通过代码上传文件到MinIO6、封装MinIO为starter7、在其他项目中集成封装好的模块 0、前言 对象存储是一种数据存储架构&a…...

Cadence学习笔记 1 原理图库绘制

基于Cadence 17.4&#xff0c;四层板4路HDMI电路 目录 一、原理图绘制及封装制作 1、原理图库绘制简介 一、原理图绘制及封装制作 1、原理图库绘制简介 File--Change Product&#xff0c;选择OrCAD Capture CIS。绘制原理图和原理图库都是用CIS完成 更改界面颜色&#xff1a…...

Unity 制作一个视频播放器(打包后,可在外部编辑并放置新的视频)

效果展示&#xff1a; 在这里&#xff0c;我把视频名称&#xff08;Json&#xff09;和对应的视频资源都放在了StreamingAssets文件夹下&#xff0c;以便于打包后&#xff0c;客户还可以自己在外部增加、删除、修改对应的视频资料。 如有需要&#xff0c;请联细抠抠。...

python爬虫--小白篇【爬虫实践】

一、前言 1.1、王者荣耀皮肤爬虫 根据王者荣耀链接&#xff0c;将王者荣耀的全部英雄的全部皮肤图片爬取保存到本地。经过分析得到任务的三个步骤&#xff1a; 根据首页全部英雄列表连接获取全部英雄的名称hero_name以及对应的hero_id&#xff1b;根据单个英雄的hero_name和h…...

CountDownLatch阻塞后countDown未执行会如何?

背景 某项目封装了 Kafka 消费者 API&#xff0c;根据传递的消费者线程数&#xff0c;创建 N 个消费者线程同时消费对应 topic 的数据&#xff0c;并在线程启动后收集到全局列表中&#xff0c;方便在程序调用 stop 流程时逐个停止。 主控类在创建 Kafka 消费线程时使用了 Cou…...

《MySQL 查询进阶:复杂查询语句的魅力》

一、引言 MySQL 的复杂查询语句就像是一把神奇的钥匙&#xff0c;能够打开数据世界的大门&#xff0c;展现出数据的无限魅力。本文将带你深入探索 MySQL 查询进阶技巧&#xff0c;从常用查询到子查询&#xff0c;再到视图的运用&#xff0c;让你领略复杂查询语句的强大功能。 …...

Vue解决跨域问题

要解决 Vue 项目的跨域问题并通过 vue.config.js 配置代理&#xff0c;可以按照以下步骤修改 vue.config.js 文件。你提供的代码大部分已经正确&#xff0c;只需要做一些格式上的调整。以下是正确的 vue.config.js 配置&#xff1a; // vue.config.jsmodule.exports {devServ…...

大语言模型(LLM)与智能机器人的应用分析

系列文章目录 前言 近年来,大型语言模型(LLM)的集成彻底改变了机器人领域,使机器人能够以人类熟练程度进行交流、理解和推理。本文探讨了 LLM 对机器人的多方面影响,并针对在不同领域利用这些模型的关键挑战和机遇进行了研究。通过将 LLM 应用程序分类并分析核心机器人元素…...

String【Redis对象篇】

&#x1f3c6; 作者简介&#xff1a;席万里 ⚡ 个人网站&#xff1a;https://dahua.bloggo.chat/ ✍️ 一名后端开发小趴菜&#xff0c;同时略懂Vue与React前端技术&#xff0c;也了解一点微信小程序开发。 &#x1f37b; 对计算机充满兴趣&#xff0c;愿意并且希望学习更多的技…...

Elasticsearch高性能实践

前言 本方案主要从运维层面分析es是实际生产使用过程中的参数优化&#xff0c;深入理解es各个名词及含义&#xff0c;深入分析es的使用过程中应注意的点&#xff0c;详细解释参数设置的原因以及目的&#xff0c;主要包括系统层面&#xff0c;参数层面。除此之外&#xff0c;优…...

Maven 安装配置(详细教程)

文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型&#xff08;POM&#xff09;的项目管理和自动化构建工具。它主要服务于 Java 平台&#xff0c;但也支持其他编程语言…...

sql server 创建索引实验

创建一个非主键索引&#xff0c;大小30G&#xff0c;数据文件增加了30G&#xff0c;日志文件增长了50G,4分钟完成&#xff0c; &#xff08;日志文件增加设置为2048MB 或者 256MB 执行时间都是4分钟&#xff0c;没有多大的时间差异&#xff09; 实验环境&#xff1a; 主机cpu…...

解决Vue项目中npm install卡住问题的详细指南

解决Vue项目中npm install卡住问题的详细指南 引言 在开发Vue项目时&#xff0c;我们经常会遇到npm install命令卡住的问题&#xff0c;特别是在构建依赖树时。本文将分享一些实用的解决方案&#xff0c;帮助您快速解决这一常见问题。 问题描述 在执行npm install时&#xf…...

手机实时提取SIM卡打电话的信令声音--社会价值(一、方案解决了什么问题)

手机实时提取SIM卡打电话的信令声音 --社会价值(一、方案解决了什么问题) 一、前言 这段时间&#xff0c;我们在技术范围之外陷入了一个自证或者说下定义的怪圈&#xff0c;即要怎么样去介绍或者描述&#xff1a;我们是一个什么样的产品。它在当前这个世界上&#xff0c;处于…...

35.1 thanos项目介绍和二进制部署

本节重点介绍 : 核心优点 无需维护存储&#xff0c;存储高可用&#xff1a; 利用廉价的公有云对象存储&#xff0c;高可用长时间存储&#xff0c;数据降采样&#xff1a;利用Compactor降采样完全适配原生prometheus查询接口&#xff1a;Query实现多级数据缓存配置 二进制部署 …...

【中工开发者】鸿蒙商城实战项目(启动页和引导页)

创建一个空项目 先创建一个新的项目选择第一个&#xff0c;然后点击finish 接下来为项目写一个名字&#xff0c;然后点击finish。 把index页面的代码改成下面代码块的代码&#xff0c;就能产生下面的效果 Entry Component struct Index {build() {Column(){Blank()Column(){…...

云计算IaaS-PaaS-SaaS三种服务模式转至元数据结尾

在当今数字化时代&#xff0c;云计算已经成为推动企业创新与发展的核心力量。而云计算的模型主要有三种&#xff1a;IAAS、PAAS 和 SAAS&#xff0c;它们各自在云计算的庞大体系中扮演着独特且关键的角色&#xff0c;恰似一座大厦的不同楼层&#xff0c;共同构建起强大而灵活的…...

Python爬虫:如何优雅地“偷窥”商品详情

在这个信息爆炸的时代&#xff0c;获取商品详情已经不再是简单的点击和浏览。我们需要的是速度、效率&#xff0c;还有一点点的...偷偷摸摸。没错&#xff0c;今天我们要聊的是如何使用Python爬虫来“偷窥”商品详情。别担心&#xff0c;我们保证一切都是合法合规的&#xff0c…...

自动化测试报错:Exception managing chrome: error decoding response body

报错&#xff1a;Exception managing chrome: error decoding response body 报错解释&#xff1a; 这个错误通常发生在使用Selenium WebDriver时&#xff0c;尝试管理&#xff08;例如关闭&#xff09;Chrome浏览器时出现了问题。具体来说&#xff0c;是在解码Chrome浏览器响…...

Dataset 与 JavaRDD

是的&#xff0c;Dataset 底层确实是基于 RDD 实现的&#xff0c;但它是通过更高层次的抽象和优化来提供更强大和易用的功能。以下是关于 Dataset 底层实现的一些详细信息&#xff1a; 1. RDD 是基础 RDD&#xff08;弹性分布式数据集&#xff09; 是 Spark 最基础的抽象&…...

【后端面试总结】Golang defer的实现原理和常见面试问题

前言 在Go语言中&#xff0c;defer关键字用于延迟函数的执行&#xff0c;即在包含defer语句的函数返回之前执行。这一特性使得defer在资源释放、文件关闭、解锁资源等场景中非常有用。本文将深入探讨defer的实现原理&#xff0c;并总结一些常见的面试问题。 基本使用 defer通…...

http 502 和 504 的区别

首先看一下概念&#xff1a; 502&#xff1a;作为网关或者代理工作的服务器尝试执行请求时&#xff0c;从上游服务器接收到无效的响应。503&#xff1a;由于临时的服务器维护或者过载&#xff0c;服务器当前无法处理请求。这个状况是临时的&#xff0c;并且将在一段时间以后恢…...

农业园区气象站

农业园区气象站是一种专为农业生产和科研设计的气象监测设备&#xff0c;它集成了多种传感器和技术&#xff0c;用于实时、准确地监测和记录农业园区内的气象数据。以下是农业园区气象站的主要功能和用处&#xff1a; 一、主要功能 实时监测&#xff1a;农业园区气象站能够实时…...

机器学习学习笔记-20241211

文章目录 空间归纳偏置局部性&#xff08;Locality&#xff09;平移不变性&#xff08;Translation Invariance&#xff09;空间关系&#xff08;Spatial Relationships&#xff09;尺度不变性&#xff08;Scale Invariance&#xff09;上下文依赖&#xff08;Context Dependen…...

【在Linux世界中追寻伟大的One Piece】HTTP Session

目录 1 -> 引入HTTP Session 1.1 -> 定义 1.2 -> 工作原理 1.3 -> 安全性 1.4 -> 超时和失效 1.5 -> 用途 2 -> 模拟session行为 3 -> 实验测试session 1 -> 引入HTTP Session 1.1 -> 定义 HTTP Session是服务器用来跟踪用户与服务器交…...

人工智能|自然语言处理——机器翻译评价指标Bleu和Rouge

在机器翻译任务中&#xff0c;BLEU 和 ROUGE 是两个常用的评价指标&#xff0c;BLEU 根据精确率(Precision)衡量翻译的质量&#xff0c;而 ROUGE 根据召回率(Recall)衡量翻译的质量 BLEU&#xff08;Bilingual Evaluation Understudy&#xff09;&#xff1a; BLEU是一种用于评…...