如何把网站上线,企业网站主页设计图片,个人网站论文摘要,怎么做公司网站seo目录 一、PageHelper简介
1.什么是分页
2.PageHelper是什么
3.使用PageHelper的优点
二、PageHelper插件的使用
原生limit查询
1. 导入pom依赖
2. Mybatis.cfg.xml 配置拦截器
3. 使用PageHelper进行分页
三、特殊字符的处理
1.SQL注入#xff1a;
2.XML转义#…目录 一、PageHelper简介
1.什么是分页
2.PageHelper是什么
3.使用PageHelper的优点
二、PageHelper插件的使用
原生limit查询
1. 导入pom依赖
2. Mybatis.cfg.xml 配置拦截器
3. 使用PageHelper进行分页
三、特殊字符的处理
1.SQL注入
2.XML转义
3.使用CDATA 区段 一、PageHelper简介
1.什么是分页 分页是一种数据展示技术用于将大量数据分成若干页显示每页显示指定数量的数据以提高用户体验和数据浏览的效率。当数据量很大时一次性将所有数据加载到页面上可能会导致页面加载缓慢甚至使浏览器崩溃。而使用分页的方式可以将数据划分成多个页面只加载当前页的数据避免了因数据量过大而导致的性能问题。 分页通常在网页应用程序中使用得较多例如电商网站的商品列表、新闻网站的文章列表等。用户可以通过翻页或点击页码来切换不同的页面从而浏览更多的数据。
2.PageHelper是什么 PageHelper是一个开源的Java分页插件它可以帮助我们在数据库查询中实现分页功能。在传统的数据库查询中我们需要手动编写SQL语句来实现分页而PageHelper可以简化这个过程。 使用PageHelper我们只需要在查询方法中添加少量的代码就可以实现分页功能。它可以自动解析我们的查询语句并根据我们指定的页码和每页显示的数量来生成相应的分页SQL语句。同时PageHelper还提供了一些其他的功能比如排序、统计等。
3.使用PageHelper的优点
1. 简单易用PageHelper提供了简洁的API使用起来非常方便。只需要在查询方法中添加少量的代码就可以实现分页功能无需手动编写复杂的分页SQL语句。
2. 兼容性强PageHelper支持多种数据库包括MySQL、Oracle、SQL Server等常见的数据库。无论你使用哪种数据库都可以轻松地集成和使用PageHelper。
3. 功能丰富除了基本的分页功能PageHelper还提供了其他实用的功能比如排序、统计等。你可以根据自己的需求灵活地使用这些功能提高查询的灵活性和效率。
4. 性能优化PageHelper在分页查询时会自动优化SQL语句减少数据库的查询开销。它会根据查询的条件和分页的设置生成最优化的SQL语句提高查询的性能。
5. 开源免费PageHelper是一个开源的项目可以免费使用。你可以在项目中直接引入PageHelper的依赖无需额外的费用。
二、PageHelper插件的使用
原生limit查询
select idselectByLikeBname resultMapBaseResultMap resultTypejava.util.Mapselectinclude refidBase_Column_List/from t_mvc_bookwhere bname like #{bname} limit #{start},#{end}/select
上述可以看到我们可以根据MySQL中的limit关键字进行分页查询这样也是可以的。但是当需求过大表过多的情况下我们又通过逆向工程生成mapper那么对于每张表分页问题就不好解决了还需要每次传入的start页码和end条目那将会显得相当繁琐。
接下来将给大家介绍pageHelper分页插件的使用
1. 导入pom依赖 dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion5.2.0/version/dependency
2. Mybatis.cfg.xml 配置拦截器 pluginsplugin interceptorcom.github.pagehelper.PageInterceptor//plugins
必须配置在environments上面它受dtd约束影响否则会报错 3. 使用PageHelper进行分页
以书籍表为例
BookMapper.xml select idselectByBname resultTypecom.ctb.model.Book parameterTypejava.lang.Stringselectinclude refidBase_Column_List/from t_mvc_bookwhere bname like concat(%,#{bname},%)/select
BookMapper.java
ListBook selectByBname(Param(bname)String bname);
bookBiz.java
ListBook selectByBname(Param(bname)String bname);
bookBizImpl.java Overridepublic ListBook selectByBname(String bname, PageBean pageBean) {if (pageBean!null pageBean.isPagination()){PageHelper.startPage(pageBean.getPage(),pageBean.getRows());}ListBook books bookBiz.selectByBname(bname);if (pageBean!null pageBean.isPagination()){PageInfoBook info new PageInfo(books);pageBean.setTotal((int)info.getTotal());System.out.println(当前页info.getPageNum()展示记录数info.getPageSize()符合查询条件的总记录数info.getTotal());}return books;}
测试类
Testpublic void testBname(){PageBean pageBeannew PageBean();pageBean.setPage(1);pageBean.setRows(15);bookBiz.selectByBname(圣墟,pageBean).forEach(System.out::println);}
测试结果 注 这里也是引用了之前的一个工具类--PageBean
工具类实现分页的要素 每页显示的数据量决定每页显示多少条数据根据用户需求和系统性能进行设定。 当前页码表示用户当前所处的页码。一般情况下我们使用数字或者页码链接来显示当前页。 总记录数表示数据总共有多少条。 总页数根据总记录数和每页显示的数据量计算出的总页数。
三、特殊字符的处理
1.SQL注入
为了防止SQL注入攻击我们需要对特殊字符进行转义或者使用参数绑定。在使用MyBatis进行数据库查询时应该尽量使用参数绑定而不是直接拼接SQL语句。参数绑定可以通过使用#{}或${}来实现。其中#{}会将参数值转义后作为预编译参数传递给数据库而${}则会直接将参数值拼接到SQL语句中所以在使用${}时需要特别注意防止SQL注入。
2.XML转义
在MyBatis的XML配置文件中如果我们需要在SQL语句中使用特殊字符如、、等需要进行XML转义以避免解析错误。常见的转义字符如下
特殊字符转义字符lt;gt;amp;quot;’apos;lt;gt;
示例 select idqueryminmax resultTypecom.ctb.model.Book parameterTypecom.ctb.dto.BookDtoselectinclude refidBase_Column_List/from t_mvc_bookwhere price gt; #{min} and price lt; #{max}/select
3.使用CDATA 区段
![CDATA[ ]]是xml语法在![CDATA[ ]]内部的所有内容都会被解析器忽略不进行转义。CDATA区段可以用来包含一些特殊字符或标记而不会被XML解析器解析。
特殊字符![CDATA[ ]]![CDATA[]]![CDATA[]]![CDATA[]]![CDATA[]]’![CDATA[]]![CDATA[]]![CDATA[]]!![CDATA[!]] select idqueryminmax resultTypecom.ctb.model.Book parameterTypecom.ctb.dto.BookDtoselectinclude refidBase_Column_List/from t_mvc_bookwhere ![CDATA[price #{max} and price #{min}]]/select
两者测试结果一致 ---最常用的是CDATA MyBatis分页插件PageHelper的使用及特殊字符的处理到这就结束啦
祝各位友友们身体健康工作顺利