近期的一个项目中遇到Mybatis的Example的and or 的应用,感觉有必要记录一下(个人见解,有问题请指出。谢谢)

1.在Example中的每一个Criteria相当于一个括号,把里面的内容当成一个整体

where  (Userid = "11" and pointname = "22")

BasePointsExample.Criteria criteria1 = example.createCriteria();
criteria1.andUseridEqualTo("11");
criteria1.andPointnameLike("22");

2.在Criteria中没有直接的or的构造方法(至少我不知道)所以碰到一下where  后  and or的连用的话会有点麻烦

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

 BasePointsExample.Criteria criteria1 = example.createCriteria();
criteria1.andUseridEqualTo('11');
criteria1.andPointnameLike(StringUtil.concatlike('22')); BasePointsExample.Criteria criteria2 = example.createCriteria();
criteria2.andUsernameEqualTo('33');
criteria2.andPointcontentLike(StringUtil.concatlike('44'));
example.or(criteria2);

  2.2   where 条件1 and (条件2   or   条件3)   这是我碰到的问题,在网上看到一种拆分的方法感觉很好

 A    and  ( B  or   C  )   ==>  ( A  and  B )  or  ( A  and C )

 BasePointsExample.Criteria criteria1 = example.createCriteria();
criteria1.andUseridEqualTo('11');
criteria1.andPointnameLike(StringUtil.concatlike('22')); BasePointsExample.Criteria criteria2 = example.createCriteria();
criteria2.andUseridEqualTo('11');
criteria2.andPointcontentLike(StringUtil.concatlike('33'));
example.or(criteria2);

  

这是我在项目中遇到的,正好能解决我的问题。感觉还有更好的方法,正在查找尝试,这种方法简单的还可以,复杂的就吃力了。

关于Mybatis的Example(and ,or )应用的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. mysqlcilent的安装

    这软件包是贼的气 首先是windows的安装上你必须要指定版本,linux的安装你就不需要指定版本了 windos上的指定安装必须要   一.下载包的时候需要指定版本, 比如python2的和mysq ...

  2. 生成器(generator),迭代器(yield)

    g=(i for i in range(10)) #小括号表示生成一个迭代生成器.[]是列表生成器 g.__next__() yield将一个函数变成生成器 import time def f(): ...

  3. Hadoop HBase概念学习系列之HBase里的4维坐标系统(第一步定位行键 -> 第二步定位列簇 -> 第三步定位列修饰符 -> 第四步定位时间戳)(十八)

    HBase里的4维坐标系统(第一步定位行键   ->   第二步定位列簇  ->  第三步定位列修饰符   ->  第四步定位时间戳) HBase里的4维坐标系统(第一步定位行键   ...

  4. 一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程

    一.Vim编辑器的使用 1. vim编辑器的运行模式 编辑模式:等待用户编辑命令的输入 插入模式:编辑文本内容 命令模式:执行命令 2. 使用 :vim 文件名 3. 查看当前vim编辑器介绍:vim ...

  5. [EffectiveC++]item45:运用成员函数模板接受所有兼容类型

  6. UserUI程序详解

    重要内容放前面:https://blog.csdn.net/yizhou2010/article/details/52837944 作者可关注 1.进行初始化,会用到AfxWinmain函数:创建当前 ...

  7. I - Matches Game(异或运算符的使用)

    I - Matches Game Description Here is a simple game. In this game, there are several piles of matches ...

  8. [T-ARA][Apple is A]

    歌词来源:http://music.163.com/#/song?id=22704474 달콤달콤해 짜릿짜릿해 [tal-Kom-dal-Ko-mae jja-lid-jja-li-Tae] 반짝반 ...

  9. docker学习笔记:简单构建Dockerfile【Docker for Windows】

    参考与入门推荐:https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html#autoid-0-0-9 最近学习docker,写一个简单构建Doc ...

  10. hihoCoder1343 : Stable Members【BFS拓扑排序】

    题目链接:https://hihocoder.com/problemset/problem/1343 #1343 : Stable Members 时间限制:10000ms 单点时限:1000ms 内 ...