学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】

这篇具有很好参考价值的文章主要介绍了学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🥳🥳Welcome Huihui's Code World ! !🥳🥳

接下来看看由辉辉所写的关于Mybatis的相关操作吧

目录

🥳🥳Welcome Huihui's Code World ! !🥳🥳

一.Mybatis分页

1. Mybatis自带分页

2.插件分页

二.特殊字符的操作

1.使用CDATA区间

2.实体引用

三.结果集的处理 


 其实Mybatis本身是有分页的功能的,但是我们还是需要重写其中的分页,这是因为Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量offset和边界limit取结果),在大数据量的情况下这样的分页基本上是没有用的

一.Mybatis分页

1. Mybatis自带分页

 //BookMapper.xml

<select id="selectPage" parameterType="map" resultType="com.wh.model.Book">
    SELECT * FROM t_mvc_book
    LIMIT #{offset}, #{limit}
</select>
 //BookMapper
List<Book> selectPage(Map map);
//BookBiz

List<Book> selectPage(Map map);
 //BookBizImpl

@Override
    public List<Book> selectPage(Map map) {

        return bookMapper.selectPage(map);
    }
 @Test
    public void selectPage() {
        Map map=new HashMap();
        map.put("bname","%圣墟%");
        map.put("offset",10);
        map.put("limit",10);
        bookBiz.selectPage(map).forEach(System.out::println);
    }

结果

学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】,框架,mybatis,github,java

上面我们也说了,这样的代码会使得分页效率低下,我们可以用到插件,这样可以使得分页的效率更高

2.插件分页

首先将依赖导入pom.xml

<!--******************************github分页插件*******************************-->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.2</version>
    </dependency>

Mybatis.cfg.xml配置拦截器(注意要符合dtd约束!!

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

 BookMapper.xml


  <select id="listPager" resultType="com.wh.model.Book" parameterType="java.lang.String">
  select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')
</select>

之后的操作跟上面是一样的,我们现在直接来看结果吧

学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】,框架,mybatis,github,java

二.特殊字符的操作

在 Mybatis 中,特殊字符是指在 SQL 语句中使用的具有特殊含义的字符。例如,单引号(')用于表示字符串,双引号(")用于表示标识符或关键字,反斜杠(\)用于转义特殊字符等,但特殊字符有时会引发一些问题...我们可以来看一下到底会引起什么问题

BookMapper.xml

 <select id="test" resultType="com.wh.model.Book" parameterType="java.util.Map">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%') and price < #{max}
  </select>

测试之后便可得到结果

学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】,框架,mybatis,github,java

 可以看到,这里是有告诉你出现了错误的,在这里我们有两种方式进行解决

1.使用CDATA区间

<select id="test" resultType="com.wh.model.Book" parameterType="java.util.Map">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%') <![CDATA[  and  price < #{max}]]>
  </select>

学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】,框架,mybatis,github,java

2.实体引用

实体引用是指在 XML 文档中,对于某个标记,如果该标记的值中包含一个实体名称,那么这个实体名称就应该用实体引用的方式来表示。实体引用的格式为 &entityName;,其中 & 符号表示实体引用的开始,entityName 表示实体名称。例如,&lt; 表示小于号 <&gt; 表示大于号 > 等,大家有需要的也可以去网上自行查找相关的实体引用

<select id="test" resultType="com.wh.model.Book" parameterType="java.util.Map">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')  and  price &lt; #{max}
  </select>

学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】,框架,mybatis,github,java

三.结果集的处理 

在正式开发中,结果集的处理,常常会用一个专门的类来存放

在 Java 开发中,VO 和 DTO 都是数据传输对象

VO(View Object)是视图层传输的对象,主要用于展示层,它将页面或组件的所有数据封装起来

DTO(Data Transfer Object)是服务层传输的对象,主要用于业务逻辑层和表示层之间,它只包含需要传递的数据,不包含业务逻辑文章来源地址https://www.toymoban.com/news/detail-678832.html

到了这里,关于学会Mybatis框架:一文掌握MyBatis与GitHub插件分页的完美结合【三.分页】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatis(七):分页插件

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! Mybatis 是一款非常流行的持久层框架,可以帮助我们轻松地实现数据库操作和数据访问。在 Mybatis中

    2024年01月16日
    浏览(33)
  • Mybatis中的分页插件

    目录 一.为什么要使用分页插件? 二.分页常用标签 三.分页插件的使用         1.在mybatis的pom中添加分页插件依赖         2.在mybatis-config.xml中创建分页插件 3.在test文件中进行查询操作的时候,开启分页功能        PageInfo()         PageHelper.startPage(); 总结: 不必

    2023年04月13日
    浏览(39)
  • Mybatis---分页插件PageHelper

    目录 一、分页插件的概念 二、PageHelper的介绍 (1)引入依赖 (2)Mybatis配置文件配置PageHelper插件 (3)测试方法 开发过程中如果要进行分页查询,需要传入页数和每页条数。返回页面数据,总条数,总页数,当前页面,每页条数等数据。此时使用PageHelper插件可以快速帮助我

    2024年02月09日
    浏览(37)
  • Mybatis 分页插件 PageHelper

    今天记录下 Mybatis 分页插件 pageHelper 的使用。 有一个员工表(employee),现在要使用 pageHelper 插件实现员工的分页查询。 Employee employee类定义代码如下 EmployeeDTO EmployeeDTO定义代码如下 PageResult 最后返回给前端的数据封装在 PageResult 类中, PageHelper 类定义如下: EmployeePageQueryDTO 分

    2024年01月19日
    浏览(64)
  • MyBatis --- 缓存、逆向工程、分页插件

    一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 使一级缓存失效的四种情况: 1、不同的SqlSession对应不同的一级缓存 2、同一个SqlSession但是查询条件不同 3、同一个SqlSession两次查询期

    2023年04月09日
    浏览(43)
  • SpringBoot 使用MyBatis分页插件实现分页功能

    案例地址: https://gitee.com/vinci99/paging-pagehelper-demo/tree/master 这里使用application.properties类型配置文件来做例子 创建一个持久化对象TestUserPO 编写在Mapper中编写SQL语句查询与之对应的表 在业务层调用Mapper接口获取数据并分页;需要注意:PageHelper.startPage(pageNum,pageSize)必须写在查询

    2024年02月10日
    浏览(51)
  • 【SpringBoot】MyBatis与MyBatis-Plus分页查询 & github中的PageHelper

            笔者写这篇博客是因为近期遇到的关于两者之间的分页代码差距,其实之前也遇见过但是没有去整理这篇博客,但由于还是被困扰了小一会儿时间,所以还是需要 加深记忆 。其实会看前后端传参解决这个问题很快、不麻烦。关于这两个框架的分页代码问题主要就

    2024年02月03日
    浏览(58)
  • mybatis-plus分页total为0,分页失效,mybatis-plus多租户插件使用

    背景:项目使用mybatis分页插件不生效,以及多租户使用时读取配置异常 多租户插件使用遇到的问题: 最开始在MyTenantLineHandler中使用 @Value(\\\"${tables}\\\"),服务启动时能从配置中心拉取到配置,但在运行时获取到的值为空,试了很多方法都不生效,后面将配置中心的配置在调用My

    2024年02月06日
    浏览(52)
  • Mybatis学习笔记,包含mybatis基本使用、关系映射、动态SQL、分页插件等等

    😀😀😀创作不易,各位看官点赞收藏. 简介:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain

    2024年02月15日
    浏览(49)
  • Spring 与【MyBatis 】和【 pageHelper分页插件 】整合

    目录 一、Spring整合MyBatis 1. 导入pom依赖 2. 利用mybatis逆向工程生成模型层层代码 3. 编写配置文件 4. 注解式开发 5. 编写Junit测试类 二、AOP整合pageHelper分页插件 1. 创建一个AOP切面 2. @Around(\\\"execution(* *..*xxx.*xxx(..))\\\") 表达式解析 3. 编写测试 1.1 添加spring相关依赖(5.0.2.RELEASE)     

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包