返回顶部
首页 > 资讯 > 精选 >Mybatis重置Criteria的正确姿势是怎么样的
  • 717
分享到

Mybatis重置Criteria的正确姿势是怎么样的

2023-06-22 02:06:50 717人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关mybatis重置Criteria的正确姿势是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis重置Criteria开发中遇到Mybatis生成的Exa

这期内容当中小编将会给大家带来有关mybatis重置Criteria的正确姿势是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Mybatis重置Criteria

开发中遇到Mybatis生成的Example通过调用createCriteria()来创建Criteria并设置查询条件的情况。

但是需要换一个查询条件再次查询时发现再次调用该方法“无效果"。

看到大多数的做法是通过new一个新的Example来查询,考虑到可能不是最好的或者最合理的做法,对此进行了简单研究。

发现问题原因如下

我们看下生成的Exmaple的源码

 public Criteria createCriteria() {        Criteria criteria = createCriteriainternal();        if (oredCriteria.size() == 0) {            oredCriteria.add(criteria);        }        return criteria;    }     protected Criteria createCriteriaInternal() {        Criteria criteria = new Criteria();        return criteria;    }

发现调用createCriteria(),虽然每次创建一个新的Criteria对象但是只有

protected List<Criteria> oredCriteria

这个列表长度为0时才会添加,进去。

查看映射的xml文件时发现,查询条件正是取自于oredCriteria。

只有调用or时才添加到该集合

 public void or(Criteria criteria) {        oredCriteria.add(criteria);    }

我们想重置查询条件怎么办?

两种方法:

一种是只清空Example的oredCriteria属性。

那么可以通过Example类中的getOredCriteria() 函数获取该列表后通过clear方法清空。

public List<Criteria> getOredCriteria() {        return oredCriteria;    }

另外一种更彻底的方法,直接调用Example的clear() 方法,将exmple对象“重置”为初始状态。

  public void clear() {        oredCriteria.clear();        orderByClause = null;        distinct = false;        pageParam = null;    }

得出一个结论

遇到问题,多看源码,多看官方文档。

Mybatis的Criteria用法总结

Mybatis重置Criteria的正确姿势是怎么样的

用一对多内敛查询的时候,有的老铁提出left join in 但是我和同事商讨结果是用代码写处各种list然后stream存到数据库中,这样一来把计算压力从数据库存入服务器,当并发量高了,这样做的好处就体现在性能方面了。

上述就是小编为大家分享的Mybatis重置Criteria的正确姿势是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Mybatis重置Criteria的正确姿势是怎么样的

本文链接: https://lsjlt.com/news/301895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mybatis重置Criteria的正确姿势是怎么样的
    这期内容当中小编将会给大家带来有关Mybatis重置Criteria的正确姿势是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis重置Criteria开发中遇到Mybatis生成的Exa...
    99+
    2023-06-22
  • Mybatis重置Criteria的正确姿势分享
    目录Mybatis重置Criteria发现问题原因如下我们想重置查询条件怎么办?得出一个结论Mybatis的Criteria用法总结Mybatis重置Criteria 开发中遇到My...
    99+
    2024-04-02
  • Python入门的正确姿势是什么
    Python入门的正确姿势是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python入门的正确姿势!初级开发者学Python容易陷入茫然,面对市面上种类众...
    99+
    2023-06-02
  • 2021 年发布Python软件包的正确姿势是怎样的
    这期内容当中小编将会给大家带来有关2021 年发布Python软件包的正确姿势是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如果您像我一样,偶尔编写一个有用的python实用小程序,并希望与您的同...
    99+
    2023-06-15
  • Python怎么用(Python使用的正确姿势)
    Python是一种高级编程语言,广泛用于各种应用程序的开发。以下是Python的正确使用姿势:1. 安装Python:首先需要下载和...
    99+
    2023-09-22
    python
  • 浅谈Tomcat内存配置的正确姿势
    1.背景 虽然阅读了各大牛的博客或文章,但并没有找到特别全面的关于JVM内存分配方法的文章,很多都是复制黏贴 为了严谨,本文特别备注只介绍基于HotSpot VM虚拟机,并且基于JD...
    99+
    2024-04-02
  • springboot配置加密的正确姿势分享
    目录前言一、使用步骤1.引入依赖2. yml配置3. 使用总结主要介绍springboot项目中配置文件的加密 前言 为了保证服务器相关信息的保密,一般会采用加密的方式进行对配置文件...
    99+
    2022-11-16
    springboot配置加密 springboot配置详解
  • PyCharm版本控制:配置Git的正确姿势
    PyCharm作为一款强大的集成开发环境,提供了丰富的功能来帮助开发者更高效地进行编码工作。其中,版本控制是开发过程中不可或缺的一部分。本文将重点介绍如何在PyCharm中配置Git,...
    99+
    2024-02-22
    pycharm git 版本控制 python程序
  • PHP同步文件索引的正确姿势是什么?
    在一个大型的项目中,文件的数量是非常庞大的。为了方便管理和查找,我们通常会对文件进行分类和索引。但是,在多人协作的开发环境中,如何保持文件索引的同步是一个问题。本文将介绍PHP同步文件索引的正确姿势,并提供相应的演示代码。 一、什么是文件...
    99+
    2023-07-09
    同步 文件 索引
  • Java中打包同步函数的正确姿势是什么?
    在Java中,同步函数可以让我们更好地控制多个线程对共享资源的访问,从而避免线程安全问题。但是,如果同步函数不正确地使用,就会导致性能下降或者死锁等问题。因此,在Java中打包同步函数的正确姿势是非常重要的。 一、synchronized...
    99+
    2023-09-29
    打包 同步 函数
  • Python开发者面向文档编程的正确姿势是什么
    这篇文章将为大家详细讲解有关Python开发者面向文档编程的正确姿势是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。概述秦人不暇自哀,而后人哀之;后人哀之而不鉴之,亦使后人而复哀后人也!...
    99+
    2023-06-17
  • 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势
    首先看一下阿里云官方的教程: 文件说明: 1. 证书文件xxxxxx.pem,包含两段内容,请不要删除任何一段内容。 2. 如果是证书系统创建的CSR,还包含:证书私钥文件xxxxxxxx.key、证书公钥文件pu...
    99+
    2022-06-04
    Apache配置SSL ubuntu apache ssl
  • 每日站会怎么开才好?——你的站会姿势正确吗?
    今天我们讲讲如何利用站会,更好地实现促进团队有效协作和聚焦,促进价值顺畅流动和交付,同时及时的暴露问题和风险。 注:精益看板方法视频教程请前往: https://yq.aliyun.com/live...
    99+
    2024-04-02
  • 重定向操作的正确姿势:PHP异步编程开发技术解析?
    重定向操作的正确姿势:PHP异步编程开发技术解析 随着互联网应用的普及,Web开发技术也在不断地发展和演进。其中,重定向操作是Web开发中的一项基础技术,它可以实现网页之间的跳转、访问权限的控制等功能。PHP作为一门流行的Web开发语言,其...
    99+
    2023-06-20
    异步编程 重定向 开发技术
  • 网页设计的秘密武器:HTML嵌入样式,解锁美观布局的正确姿势
    HTML嵌入样式是什么? HTML嵌入样式(Inline Styling)是一种在HTML元素中使用style属性来设置元素样式的方法。它允许您直接在HTML中控制元素的外观,而无需使用外部样式表。 <p style="color...
    99+
    2024-02-08
    HTML CSS 嵌入样式 网页设计 布局 美观
  • C++声明放置正确的应用方式是怎样的
    C++声明放置正确的应用方式是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C++编程语言既然被看做是C语言的升级版本,它必然会具有C语言中的很多功能。不过其中还是有很多...
    99+
    2023-06-17
  • 怎么正确的配置cdn
    正确配置CDN的步骤如下:1.选择合适的CDN服务提供商:根据自己的需求选择合适的CDN服务提供商,考虑到价格、性能、服务质量、服务...
    99+
    2023-09-16
    cdn
  • Vista SP1安装最正确的方法是怎样的
    这期内容当中小编将会给大家带来有关Vista SP1安装最正确的方法是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。以Vista SP1 build 6001.17036 v.652为蓝本介绍的安装...
    99+
    2023-06-13
  • JS中switch的正确写法是怎样,要注意什么
    在JavaScript中,switch语句的正确写法如下:```javascriptswitch (expression) {cas...
    99+
    2023-09-09
    JS
  • web前端工程师正确的学习思路是怎样的
    web前端工程师正确的学习思路是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于零基础的学员来说:初接触一门技术,想要...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作