iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatisExampleAnd与Or混合使用的实例
  • 656
分享到

MyBatisExampleAnd与Or混合使用的实例

2024-04-02 19:04:59 656人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis Example And与Or混合使用(条件1 and 条件2) or ( 条件3 and 条件4)条件1 and (条件2 or 条件3)MyBatis Exam

MyBatis Example And与Or混合使用

(条件1 and 条件2) or ( 条件3 and 条件4)


      MemberExample example = new MemberExample();
      MemberExample.Criteria c1 = example.createCriteria();
                          c1.andOne(A).andTwo(B);
      
      MemberExample.Criteria c2 = example.createCriteria();
                          c2.andThree(C).andFour(D); 
      example.or(c2);  

条件1 and (条件2 or 条件3)

思路 : 分拆 : A and ( B or C ) ==> ( A and B ) or ( A and C )


   MemberExample example = new MemberExample();
      MemberExample.Criteria c1 = example.createCriteria();
                          c1.andOne(A).andTwo(B);
      
      MemberExample.Criteria c2 = example.createCriteria();
                          c2.andOne(A).andThree(C); 
      example.or(c2);   

MyBatis Example 处理And、Or关系方法

1.( xx and xx) or ( xx and xx)

实例代码:


BaUserExample baUserExample = new BaUserExample(); 
Criteria criteria1 = baUserExample.createCriteria();
criteria1.andOrgIdEqualTo("1");
criteria1.andDeptIdEqualTo("1");
   
Criteria criteria2 = baUserExample.createCriteria();
criteria2.andUserNameEqualTo("name");
criteria2.andEmailLike("%test@%");
   
baUserExample.or(criteria2); 
userMapper.countByExample(baUserExample);

执行的sql语句:


==>  Preparing: select count(*) from ba_user WHERE ( org_id = ? and dept_id = ? ) or( user_name = ? and email like ? )

2.xx and ( xx or xx)

暂时没找到直接的sql语句构造方法,但是经过转换还是可以实现的

根据逻辑表达式可以知道 a and ( b or c ) = ( a and b) or ( a and c )

所以就转变成第一种方法

举个例子,假如想要实现


select count(*) from ba_user WHERE userName like ? and ( dept_id is null or dept_id <>? )

可以转化为


select count(*) from ba_user WHERE (userName like ? and  dept_id is null ) or ( userName like ? and  dept_id <>? )

实例代码:


BaUserExample baUserExample = new BaUserExample(); 
Criteria criteria1 = baUserExample.createCriteria();
criteria1.andUserNameLike("%name%");
criteria1.andDeptIdIsNull();
   
Criteria criteria2 = baUserExample.createCriteria();
criteria2.andUserNameLike("%name%");
criteria2.andDeptIdNotEqualTo("1");
   
baUserExample.or(criteria2); 
userMapper.countByExample(baUserExample);

执行的sql语句:


==>  Preparing: select count(*) from ba_user WHERE ( user_name like ? and dept_id is null ) or( user_name like ? and dept_id <> ? ) 

这算是一种取巧的方法吧,对于这样的问题可以自己编写mapper.xml文件,或者在代码里面过滤,还有一种思路就是修改Criteria的代码实现and和or功能调换(还没尝试过)。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: MyBatisExampleAnd与Or混合使用的实例

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatisExampleAnd与Or混合使用的实例
    目录MyBatis Example And与Or混合使用(条件1 and 条件2) or ( 条件3 and 条件4)条件1 and (条件2 or 条件3)MyBatis Exam...
    99+
    2024-04-02
  • oracle中or和and怎么混合使用
    在Oracle中,可以通过使用括号来混合使用OR和AND运算符。例如,假设我们有一个查询条件要求满足A和(B或C):SELEC...
    99+
    2023-08-31
    oracle
  • Python与Matlab混合编程的实现案例
    目录前言一、环境准备二、简单示例三、更复杂的示例1.调用.m文件2.调用自定义函数3.绘图测试四、项目相关前言 因为项目需要,需要批处理很多Matlab的.m文件,从每个文件中提取结...
    99+
    2023-01-28
    Python与Matlab混合编程 Python Matlab混合编程
  • mysql中or详细使用方式(Mysql之and和or混合使用) MES
    mysql中or详细使用方式(Mysql之and和or混合使用) 在mysql中,经常会遇到这样的情况,在写条件语句where时,可能会同时有多个条件的“或”或者“与”,但经常会达不到效果,...
    99+
    2023-09-12
    mysql 数据库 sql
  • C与汇编混合编程的实现示例
    目录1. C语言内联汇编2. C语言调用汇编函数3. 汇编代码调用C语言函数上一期中,使用链表的方式进行对不同任务的调用,实现的效果还是不错的,但是,任务在进行过程中不能进行来回的切...
    99+
    2024-04-02
  • SQL语句中OR和AND的混合使用的小技巧
    今天有这样得一个需求,如果登陆人是客服的话,会查询订单是'该客服'以及还没有匹配客服的,刚开始想的是直接在sql语句上拼写  or  assigned_id is null  ...
    99+
    2024-04-02
  • Typescript使用修饰器混合方法到类的实例
    目录Typescript使用修饰器混合方法到类Typescript类(class)与修饰符的使用简介成员修饰符实现(implements)继承(extends)Typescript使...
    99+
    2024-04-02
  • AJAX和JSP混合使用的示例分析
    这篇文章将为大家详细讲解有关AJAX和JSP混合使用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先要知道AJAX 是一种在无需重新加载整个网页的情况下,能够...
    99+
    2024-04-02
  • CSS中float和margin混合使用的案例
    小编给大家分享一下CSS中float和margin混合使用的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!float属性float: left | right...
    99+
    2023-06-08
  • mybatisplus与JPA混合使用的方法是什么
    本文小编为大家详细介绍“mybatisplus与JPA混合使用的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatisplus与JPA混合使用的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • win11混合现实门户如何使用
    本篇内容主要讲解“win11混合现实门户如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win11混合现实门户如何使用”吧!win11混合现实门户使用教程:首先点开底部“开始菜单”,如图所...
    99+
    2023-07-02
  • BAT与HTML混合编程写法的示例分析
    这篇文章给大家介绍BAT与HTML混合编程写法的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。核心代码:<!--::::::::::::::::::::::::::::::::BAT:::::::::::...
    99+
    2023-06-08
  • 高斯混合模型与EM算法的示例分析
    这篇文章给大家分享的是有关高斯混合模型与EM算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言 高斯混合模型(Gaussian Mixture Model)简称GMM,是一种业界广泛使...
    99+
    2023-06-20
  • Python小实例混合使用turtle和tkinter让小海龟互动起来
    Turtle 窗口 请看下图,turtle窗口图标是一片小叶子,估计它就是继承自 tkinter 库。 tkinter 窗口 参阅了一些资料,发现 turtle 方法可直接在 tk...
    99+
    2024-04-02
  • Spring实战之XML与JavaConfig的混合配置详解
    前言之前提到了关于Spring的显示配置方式有两种,一种是基于XML配置,一种是基于JavaConfig的方式配置。对于这两种配置方式并不是互斥关系,相反,他们两能够相互融合,有效的搭配完成Spring的bean注入。这里分别介绍如何在Ja...
    99+
    2023-05-31
    spring javaconfig xml
  • CSS的Sass框架中混合宏的使用
    这篇文章主要讲解了“CSS的Sass框架中混合宏的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS的Sass框架中混合宏的使用”吧!我所探讨的焦点在...
    99+
    2024-04-02
  • Python和C++的混合编程(使用Bo
      想要享受更轻松愉悦的编程,脚本语言是首选。想要更敏捷高效,c++则高山仰止。所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中。原来贡献过一篇《c++和js的混合编程》也是同样的目的。   得益于机器学习领域的发展,...
    99+
    2023-01-30
    Python Bo
  • java中Memcached的使用实例(包括与Spring整合)
    一、什么是Memcached? Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务。Memcached把一些...
    99+
    2024-04-02
  • vue中混入mixin的应用实例
    这篇文章主要介绍了vue中混入mixin的应用实例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用...
    99+
    2023-06-15
  • Vue混入与插件的使用介绍
    目录1. 混入2. 插件1. 混入 概述: 混入(mixins)是一种分发Vue组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作