博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis Generator产生的Example类
阅读量:6956 次
发布时间:2019-06-27

本文共 1529 字,大约阅读时间需要 5 分钟。

hot3.png

Example类用于构造复杂的筛选条件。

基本概念

  • Criterion

    Criterion是最基本,最底层的Where条件,用于字段级的筛选,feild用于指代字段名字,列举如下:

    只有一个条件,不需要其他参考值

    feild IS NOLL
    feild IS NOT NULL

    与一个参考值进行算数运算

    feild > value
    feild >= value
    feild = value
    feild <> value
    feild <= value
    feild < value

    与一个参考值进行模糊查询,参值中的%,?只能在构造查询条件时手动指定。

    feild LIKE value

    feild NOT LIKE value

    介于两个参考值之间

    feild BETWEEN value AND secondValue

    在或不在一个参考值集合中,item来自于value集合

    feild IN (item,item,item,...)

    feild NOT IN (item,item,item,...)

    MyBatis Generator会为每个字段产生如上的Criterion,如果表的字段比较多,产生的Example类会十分庞大。理论上通过Example类可以构造你想到的任何筛选条件。

  • Criteria

    Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系。

  • oredCriteria

    Example内有一个成员叫oredCriteria,是Criteria的集合,就想其名字所预示的一样,这个集合中的Criteria是由OR连接的,是逻辑或关系。oredCriteria就是ORed Criteria。

用法

示例来自。

 

[java]  

  1. TestTableExample example = new TestTableExample();  
  2.    
  3.   example.or()  
  4.     .andField1EqualTo(5)  
  5.     .andField2IsNull();  
  6.    
  7.   example.or()  
  8.     .andField3NotEqualTo(9)  
  9.     .andField4IsNotNull();  
  10.    
  11.   List<Integer> field5Values = new ArrayList<Integer>();  
  12.   field5Values.add(8);  
  13.   field5Values.add(11);  
  14.   field5Values.add(14);  
  15.   field5Values.add(22);  
  16.    
  17.   example.or()  
  18.     .andField5In(field5Values);  
  19.    
  20.   example.or()  
  21.     .andField6Between(3, 7);  

 

 

or()方法会产生一个新的Criteria对象,添加到oredCriteria中,并返回这个Criteria对象,从而可以链式表达,为其添加Criterion。

产生的动态SQL是这样的:

 

[java]  

  1. where (field1 = 5 and field2 is null)  
  2.      or (field3 <> 9 and field4 is not null)  
  3.      or (field5 in (8, 11, 14, 22))  
  4.      or (field6 between 3 and 7)  

 

 

其他

Example类的distinct字段用于指定DISTINCT查询。

orderByClause字段用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。

转载于:https://my.oschina.net/u/1582930/blog/1542201

你可能感兴趣的文章
sublime实用插件-持续更新
查看>>
DotImage使用教程:从数据库中读写图像
查看>>
行业虚拟化发展趋势——“瑞友杯”虚拟化征文
查看>>
XY问题在开发中的体现
查看>>
更换或加装网卡的eth编号顺序配置
查看>>
Executors下面的线程池实现
查看>>
锐捷CCNA系列(五) 交换机配置模式切换
查看>>
squid命中率监控软件安装
查看>>
备份 Outlook 2010 中接收到的邮件和联系人
查看>>
用open***组建lan to lan ***
查看>>
我的友情链接
查看>>
Invalid source HTML for this operation , Error In IE
查看>>
Linux服务器间建立双向信任-无密码相互访问
查看>>
【COCOS2D-HTML5 开发之二】cocos2d-html5项目定义成员,局部变量,函数笔记随笔
查看>>
rsync与inotify
查看>>
将博客搬至CSDN
查看>>
使用docker镜像玩转steam挂卡
查看>>
修改root密码方式及克隆虚拟机
查看>>
hadoop技术入门学习之发行版选择
查看>>
spring-boot官方参考文档(使用spring-boot)(2.2)
查看>>