Mybatis分页及特殊字符

news2025/1/12 6:05:24

目录

MyBatis分页

 特殊字符


接着上篇博客接下来我们要写的是MyBatis分页

MyBatis分页

首先我们导入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>

BookMapper.xml

<select id="listPager" resultType="java.util.Map" parameterType="java.util.Map">
  select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')
</select>

 Mapper层

List<Map> listPager(Map map);

Servlet层

List<Map> listPager(Map map, PageBean pageBean);

 测试

@Override
public List<Map> listPager(Map map, PageBean pageBean) {
    if(pageBean != null && pageBean.isPagination()){
        PageHelper.startPage(pageBean.getPage(),pageBean.getRows());
    }
    List<Map> list = bookMapper.listPager(map);
    if(pageBean != null && pageBean.isPagination()){
        PageInfo pageInfo = new PageInfo(list);
        System.out.println("页码:"+pageInfo.getPageNum());
        System.out.println("页大小:"+pageInfo.getPageSize());
        System.out.println("总记录:"+pageInfo.getTotal());
        pageBean.setTotal(pageInfo.getTotal()+"");
    }
    return list;
}

测试结果

 特殊字符

方案一:使用转义字符
转义字符:
  转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
  不同的语言有不同的转义符。如HTML转义符、java 转义符、xml 转义符、 oracle 转义符、sql 转义符 、sqlserver 转义符、php 转义符、asp 转义符、vb转义符、 javascript 转义符等等,还有网址中的百分号。
  例如:
  HTML的&lt; &gt;&amp;&quot;&copy;分别是 < > & " © 的转义字符

  XML只有5个转义符: &lt; &gt;&amp; &quot; &apos;,分别对应 < > & " ’ 

转义符使用场景:
  例:
  HTML中< > &等字符是有特殊含义的,其中 < > 用于链接签,&用于转义。
  Mybatis中< > 等字符在xml解析中是会报错的。

方案二:使用xml的![CDATA[ ]]语法

<![CDATA[ ]]>是xml语法,在<![CDATA[ ]]>内部的所有内容都会被解析器忽略,不进行转义。所以在xml中这是一种通用方案。

 特殊情况:
不能直接把mybatis中的逻辑判断全部包住,因为还有标签有使用特殊字符<>,所以尽可能缩小范围,写在条件中:

<if test="">
  <![CDATA[
    create_time > #{start} and createTime < #{end}
]]>
</if>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/922982.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

workbench连接MySQL8.0错误 bad conversion 外部组件 异常

阿里云搭建MySQL实用的版本是8.0 本地安装的版本是: workbench 6.3 需要升级到&#xff1a; workbench 8.0 https://dev.mysql.com/downloads/workbench/

基于 SVG 的图形交互方案实践

不知道从什么时候起&#xff0c;人们开始喜欢上数字大屏这种“花里胡哨”的东西&#xff0c;仿佛只要用上“科技蓝”这样神奇的色调&#xff0c;就可以让一家公司焕然一新&#xff0c;瞬间变得科技感满满。不管数字大屏的实际意义&#xff0c;是用来帮助企业监控和决策&#xf…

压力传感器丨定义、原理、应用

压力传感器是工业实践中常用的设备&#xff0c;作为自控系统的重要组成部分&#xff0c;压力传感器能够用于工业过程中压力参数的测量和控制&#xff0c;常用于高温、低压、腐蚀、振动等环境。 压力传感器的原理是基于压力感测技术&#xff0c;能够将被测压力转化为4G信号&…

开学日临近,送你一份VR校园攻略

开学日临近&#xff0c;各位萌新是否还在心怀激荡&#xff0c;无限憧憬着美丽校园呢&#xff1f;可能有一部分大学已经开学了&#xff0c;那么刚入校园的你们&#xff0c;是不是也想尽快熟悉未来学习、生活的地方呢&#xff1f;这份VR校园攻略带你沉浸式体验校园生活。 首先是大…

基于前端技术原生HTML、JS、CSS 电子病历编辑器源码

电子病历系统采取结构化与自由式录入的新模式&#xff0c;自由书写&#xff0c;轻松录入。实现病人医疗记录&#xff08;包含有首页、病程记录、检查检验结果、医嘱、手术记录、护理记录等等。&#xff09;的保存、管理、传输和重现&#xff0c;取代手写纸张病历。不仅实现了纸…

亚马逊出口灯具需要做的认证fcc认证UL认证ROHS认证CE认证

灯具CE认证&#xff1a; ​CE认证是产品进入欧盟及欧洲贸易自由区国家市场的通行证。任何国家的产品要进入欧盟、欧洲自由贸易区必须进行CE认证&#xff0c;在产品上加贴CE标志。LED灯具CE认证检测&#xff0c;为各国产品在欧洲市场进行贸易提供了统一的技术规范&#xff0c;C…

寻找最佳财务软件:简单易用的首选推荐

现代企业越来越依赖高效的财务管理工具&#xff0c;而财务软件成为了许多企业的首选。然而&#xff0c;市场上众多的财务软件让人眼花缭乱&#xff0c;财务软件哪个最好用最简单&#xff1f; Zoho Books是由Zoho Corporation开发的一款全功能财务管理软件。它提供了一系列强大的…

Leetcode---111双周赛

题目列表 2824. 统计和小于目标的下标对数目 2825. 循环增长使字符串子序列等于另一个字符串 2826. 将三个组排序 2827. 范围中美丽整数的数目 一、统计和小于目标的下标对数目 这题直接暴力求解&#xff0c;时间复杂度是O(n^2)&#xff0c;代码如下 class Solution { pu…

知识推荐:化工企业ERP系统如何选型?

多年来&#xff0c;在政策激励、舆论倡导和产业实践的不断推动下&#xff0c;智能制造的理念已经深入人心&#xff0c;成为化工行业的普遍共识。在当前经济新常态下&#xff0c;化工产业面临着产能过剩、效益下滑、环境恶化等多重压力&#xff0c;必须从战略高度认识并积极应对…

Kali 软件管理测试案例

案例1 &#xff1a;显示目录树 tree ┌──(root㉿kali)-[~] └─# tree --help usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-L level [-R]] [-H baseHREF][-T title] [-o filename] [-P pattern] [-I pattern] [--gitignore][--gitfile[]file] [--matchdirs] [--metafirs…

PotPlayer+LAV+MadVR+XySubFilter 配置指南(修订版)

Introduction Potplayer 作为 Windows 上很受欢迎的一款播放器&#xff0c;公认的最佳配置为结合 LAV、madVR、XySubfilter 进行使用。本文将介绍一种对其简单配置的方法。 LAV&#xff1a;一套主流的开源解码 filterMadVR&#xff1a;一个高性能的视频渲染器XySubFilter&…

keepalived双机热备

一、概述 Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题 原理 在一个 LVS 服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色的服务器&#xff0c…

19篇ICCV 2023自动驾驶精选论文解析 | 涵盖3D目标检测、语义分割、点云等方向

ICCV 2023榜单上月已出&#xff0c;今年共收录了2160篇论文&#xff0c;这次是精选了今年ICCV 2023 会议中自动驾驶相关的最新论文来和大家分享&#xff0c;涵盖了3D目标检测、BEV感知、目标检测、语义分割、点云等方向&#xff0c;共19篇。 论文原文以及开源代码文末领取&…

Apipost:提升API开发效率的利器

在数字化时代&#xff0c;API已经成为企业和开发者实现业务互通的关键工具。然而&#xff0c;API的开发、调试、文档编写以及测试等工作繁琐且复杂。Apipost为这一问题提供了完美的解决方案。 Apipost是一款专为API开发人员设计的协同研发平台&#xff0c;旨在简化API的生命周…

多数元素00

题目链接 多数元素 题目描述 注意点 给定的数组总是存在多数元素多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素 解答思路 初始想到使用map存每个元素和元素出现的次数&#xff0c;但是时间和空间都不理想因为本题给定的数组总是存在多数元素&#xff0c;使用投票算…

在CSS中,盒模型中的padding、border、margin是什么意思?

在CSS中&#xff0c;盒模型&#xff08;Box Model&#xff09;是用来描述和布局HTML元素的基本概念。它将每个HTML元素看作是一个矩形的盒子&#xff0c;这个盒子包括了内容&#xff08;content&#xff09;、内边距&#xff08;padding&#xff09;、边框&#xff08;border&a…

第二节 分支和循环语句

第二节 分支和循环语句 目录 一&#xff0e; 什么是语句&#xff1f;二&#xff0e; 分支语句&#xff08;选择结构&#xff09;三&#xff0e; 循环语句 本章重点&#xff1a; 分支语句  if  switch 循环语句  while  for  do while goto语句 一&#xff0e; 什么是…

Spark on Yarn集群模式搭建及测试

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 点击传送&#xff1a;大数据学习专栏 持续更新中&#xff0c;感谢各位前辈朋友们支持学习~ 文章目录 1.Spark on Yarn集群模式介绍2.搭建环境准备3.搭建步骤 1.Spark on Yarn集群模式介…

华为USG防火墙登录提示:登录失败,可能的原因时账户被锁定

问题&#xff1a; 密码是正确的&#xff0c;但是华为USG6305E 防火墙登录提示&#xff1a;登录失败&#xff0c;可能的原因时账户被锁定 解决办法&#xff1a; 清楚浏览器所有的缓存&#xff0c;重启浏览器后再登录&#xff0c;正常可以登录

创建导航卡 “系统管理_导航卡_Demo”

前言 apex和pl/sql要学的东西还有很多&#xff0c;一次性放在一个里面老是找不着&#xff0c;细分一下单独说&#xff0c;也方便复习。 创建导航卡“系统管理_导航卡_Demo” 1.创建列表 创建成功 点开还可以继续修改&#xff0c;设置图标 2 创建导航页面 Step 1创建空白页面…