动态sql模糊查询和分页

article/2025/8/31 2:38:16

文章目录

    • 动态sql
    • 模糊查询
    • 查询返回结果集的处理
    • 分页

动态sql

BookMapper
在这里插入图片描述
xml
在这里插入图片描述
bookservice
在这里插入图片描述
测试:
MapperSql.test
在这里插入图片描述
运行:
在这里插入图片描述

模糊查询

BookMapper
在这里插入图片描述
BookMapper.xml
在这里插入图片描述
Bookservice
在这里插入图片描述
StringUtiles
在这里插入图片描述
测试:
一共介绍了三种模糊查询的方法,
对比第三种更加实用。
在这里插入图片描述
运行:
在这里插入图片描述

查询返回结果集的处理

BookMapper
在这里插入图片描述
Bookmapper.xml

 <select id="List1" resultMap="BaseResultMap">select * from t_mvc_book</select><select id="List2" resultType="com.caoluo.model.Book">select * from t_mvc_book</select><select id="list3" resultType="com.caoluo.model.Book" parameterType="com.caoluo.model.BookVo">select * from t_mvc_book where bid in<foreach collection="bookIds" open="(" close=")" separator="," item="bid">#{bid}</foreach></select><select id="list4" resultType="java.util.Map" parameterType="java.util.Map" >select * from t_mvc_book<where><if test="null != bname and bname !=''">and bname like #{bname}</if></where></select><select id="list5" resultType="java.util.Map" parameterType="java.util.Map">select * from t_mvc_book<where><if test="null != bid and bid !=''">and bid = #{bid}</if></where></select>
</mapper>

BookVo继承Book实体类
在这里插入图片描述
测试代码

 @Testpublic void list() {//返回resultMap但是使用list<T>
//        List<Book> books=this.bookService.List1();//返回的是resulttype使用list<T>接收
//        List<Book> books=this.bookService.List2();
//        for (Book b :books){
//            System.out.print(b);
//        }//返回的是resulttype 使用T接收
//        BookVo bookVo=new BookVo();
//        List list=new ArrayList();
//        list.add(5);
//        bookVo.setBookIds(list);
//        Book book=this.bookService.list3(bookVo);
//        System.out.print(book);//返回的是resultType,然后用list<map>进行接收Map map=new HashMap();
//        map.put("bname",StringUtils.toLikeStr("李四"));
//        List<Map> list=this.bookService.list4(map);
//        for (Map m :list){
//            System.out.print(m);
//        }
//        /返回的是resultType,然后用map进行接收map.put("bid",7);Map m=this.bookService.list5(map);System.out.print(m);

分页

为什么要重写mybatis的分页?
Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量offset和边界limit取结果),在大数据量的情况下这样的分页基本上是没有用的

使用分页插件步奏
1、导入pom依赖
2、Mybatis.cfg.xml配置拦截器
3、使用PageHelper进行分页
4、处理分页结果
Pom依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version>
</dependency>

Mybatis.cfg.xml配置拦截器

<plugins><!-- 配置分页插件PageHelper, 4.0.0以后的版本支持自动识别使用的数据库 --><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

Bookservice层

在这里插入图片描述
BookServiceImpl
在这里插入图片描述
测试:
在这里插入图片描述
运行:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/QtQFHknw.shtml

相关文章

每日一课 | SQL模糊查找

07. SQL模糊查找 大家好&#xff0c;我是小C&#xff0c;上期给大家分享——通过查询条件实现数据过滤&#xff08;完结篇&#xff09; 本期分享内容&#xff1a;SQL模糊查找 本期小C邀请的是董旭阳老师&#xff08;资深数据库架构师&#xff09;为我们分享《SQL从入门到精通》…

设置 MYSQL 数据库编码为 utf8mb4

utf-8编码可能2个字节、3个字节、4个字节的字符&#xff0c;但是MySQL的utf8编码只支持3字节的数据&#xff0c;而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据&#xff0c;java程序中将报SQL异常&#xff1a; java.sql.SQLException: Inc…

utf8mb4 字符集(4字节 UTF-8 Unicode 编码)

最近做项目遇到APP评论中有 emoji 表情符号&#xff0c;结果导致插入 MySQL 数据库失败&#xff0c;找到 MySQL 官方相关内容&#xff0c;这里斗胆翻译一下。在翻译过程中有些不明白的地方&#xff0c;如BMP、collation等&#xff0c;都找到官方文档&#xff0c;给出了链接&…

UTF-8编码详解

1.ASCII编码 因为计算机只能处理数字&#xff0c;如果要处理文本&#xff0c;就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特&#xff08;bit&#xff09;作为一个字节&#xff08;byte&#xff09;&#xff0c;所 以&#xff0c;一个字节能表示的最大的…

mysql中的utf8与utf8mb4

一、如何设置utf8mb4 mysql中针对字符串类型&#xff0c;在设置charset的时候可以精确到字段。 如果只将某个字段设置utf8mb4&#xff0c;那么其他字段不会受影响。 如果针对表来设置&#xff0c;那么已经存在的字段依然是utf8&#xff0c;并且会多出utf8的标记&#xff0c;…

What is UTF-8?

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请点击人工智能教程 UTF-8 is a variable-width character encoding standard that uses between one and four eight-bit bytes to re…

图解unicode、utf8和utf8mb4

字符集和字符编码 字符集&#xff08;CCS: Coded Character Set&#xff09;&#xff1a; 就是一个表格&#xff0c;表示每个字符对应数字&#xff08;通常用16进制表示&#xff09;&#xff0c;比如unicode字符集中&#xff0c;数字1对应的就是U00031&#xff0c;字母a对应的…

UTF-8

UTF-8编码规则 UTF-8是Unicode的一种实现方式&#xff0c;也就是它的字节结构有特殊要求&#xff0c;所以我们说一个汉字的范围是0X4E00到0x9FA5&#xff0c;是指unicode值&#xff0c;至于放在utf-8的编码里去就是由三个字节来组织&#xff0c;所以可以看出unicode是给出一个…

MySQL 数据库字符集 utf8 和 utf8mb4 的区别

MySQL 的 utf8 实际上不是真正的 UTF-8。utf8 只支持每个字符最多三个字节&#xff0c;而真正的 UTF-8 是每个字符最多四个字节。 MySQL 一直没有修复这个 bug&#xff0c;他们在 2010 年发布了一个叫作 utf8mb4 的字符集&#xff0c; 绕过了这个问题。当然&#xff0c;他们并…

utf8和utf8mb4的区别

1. 基础知识 1.1 bit &#xff0c; byte &#xff0c; word 字 word 字节 byte (B) 位 bit (b) 1.2 单位换算 1字节 8位(1 byte 8bit) 1字 2字节(1 word 2 byte) 一个汉字 2字节 中文标点 三个字节 一个英文字母 一个字节 英文标点 一个字节 Em…

简单明了!utf8和utf8mb4的区别

一、简介 MySQL在5.5.3之后增加了这个utf8mb4的编码&#xff0c;mb4就是most bytes 4的意思&#xff0c;专门用来兼容四字节的unicode。utf8mb4是utf8 的超集&#xff0c;除了将编码改为utf8mb4外不需要做其他转换。当然&#xff0c;为了节省空间&#xff0c;一般情况下使用u…

浅谈uf8mb4字符集

要在 Mysql 中保存 4 字节长度的 UTF-8 字符&#xff0c;需要使用 utf8mb4 字符集&#xff08;mb4就是most bytes 4的意思&#xff0c;专门用来兼容四字节的unicode&#xff09;&#xff0c;但只有 5.5.3 版本以后的才支持。 为了获取更好的兼容性&#xff0c;应该总是使用 utf…

学习笔记4-K均值聚类算法

K-均值聚类的一般流程 &#xff08;1&#xff09;收集数据&#xff1a;可以使用任何方法收集数据 &#xff08;2&#xff09;准备数据&#xff1a;需要数值型数据来计算距离&#xff0c;也可以将标称型数据映射为二值型数据再用于距离计算 &#xff08;3&#xff09;分析数据…

【吴恩达机器学习-笔记整理】k-means(k-均值聚类算法)

目录&#xff1a; &#x1f335;&#x1f335;&#x1f335;前言一、应用二、k-means1、参数&#xff1a;2、过程3、应用4、优化目标5、随机初始化6、聚类数量的选择 ❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭&#xff01; &#x1f335;&#x1f335;&#x1f335;前言 ✨你好…

25.K-均值算法的介绍及实现过程

主要内容 K-均值算法的介绍K-均值算法的实现过程K-均值算法的具体例子实现过程 一、K-均值算法的介绍 K-均值&#xff08;K- means&#xff09; ** 是最普及的聚类算法**&#xff0c;算法接受一个未标记的数据集&#xff0c;然后将数据聚类成不同的组 聚类算法 是无监督学习…

K-means(K均值聚类算法)算法笔记

K-means&#xff08;K均值聚类算法&#xff09;算法笔记 K-means 算法&#xff0c;是比较简单的无监督的算法&#xff0c;通过设定好初始的类别k&#xff0c;然后不断循环迭代&#xff0c;将给定的数据自动分为K个类别。事实上&#xff0c;大家都知道K-means是怎么算的&#x…

K-近邻算法讲解以及实战

1.概述 邻近算法&#xff0c;或者说K最近邻(KNN&#xff0c;K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻&#xff0c;就是k个最近的邻居的意思&#xff0c;说的是每个样本都可以用它最接近的k个邻居来代表。Cover和Hart在1968年提出了最初的…

第十五课.K均值算法

目录 K均值算法原理K均值算法的改进&#xff1a;K-meansnumpy实现K-means K均值算法原理 K均值&#xff08;K-means&#xff09;算法属于无监督学习中的聚类算法&#xff1b;聚类是根据样本特征向量之间的相似度或距离&#xff0c;将样本数据划分为若干个样本子集&#xff0c;…

K均值与K近邻算法简析

回顾了一下机器学习的简单算法。 原文链接&#xff1a;https://blog.csdn.net/zll0927/article/details/17000675 K-Means介绍 K-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据他们的属性分为k个聚类以便使得所获得的聚类满足&#xff1a;同一聚类中的对象相似度…

聚类算法、无监督学习、K均值算法及其优化函数

聚类算法 无监督学习&#xff1a;将无标签样本分为不同的两类或者多类&#xff0c;称为聚类算法 K均值算法 K均值算法是一个迭代算法&#xff0c;共两个步骤 1.簇分配&#xff1a;遍历图中每个样本&#xff0c;根据每个样本点离那个聚类中心近&#xff0c;从而将该样本点分配…