mybatis多条相同的select语句只有第一次执行

问题描述

在插入分类的时候需要先查看该分类是否存在,若不存在则插入,第一次查找是该分类不存在,进行插入操作,在插入操作之后再一次遇到该分类时,执行查找操作,发现此时查找语句不起作用,有将该分类插入一次。

原因

mybatis有一级缓存和二级缓存,mybatis对查询的语句会存在一级缓存中,如果在一个事务中,mybatis对同一个session多次查询同一个sql语句就会去找缓存而不是再去查一次数据库。

解决方法

在xml文件 select语句添加 flushCache=“true” ,告诉mybatis查询结束后刷新缓存,不记录查询结果到一级缓存中

<select id="pageListCount" resultType="int" flushCache="true">
在使用Mybatis进行一对多分页查询时,可以使用两种方式进行分页处理。 第一种方式是将分页操作放在查询语句中,这样可以根据主表的条数进行分页。然而,这种方式可能导致分页不准确,因为它以总条数进行分页,而不是以主表条数分页。 第二种方式是在service层手工进行分页处理。首先查询一次总数,然后根据当前页和每页大小计算出数据库查询的起始下标,然后将起始下标和每页大小传入查询语句中进行分页查询。这种方式比较灵活,可以根据需要进行定制化的分页操作。 另外,还可以使用MybatisPlus提供的分页功能进行一对多分页查询。可以通过创建一个Page对象,并设置每页大小和当前页数,然后调用MybatisPlus的分页查询方法来进行分页查询。 以上是Mybatis中进行一对多分页查询的两种常见方式,可以根据具体情况选择适合的方式进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mybatis进阶分页(一对多)](https://blog.csdn.net/qq_32419139/article/details/121988758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [mybatis之一对多分页处理](https://blog.csdn.net/weixin_43328357/article/details/101110280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值