mybatis工具类example详解

阅读: 评论:0

mybatis工具类example详解

mybatis工具类example详解

一、example类干什么用的?

理论上通过example类可以构造你想到的任何筛选条件。

例子是展示此类用法的最好方式.

Example类可以用来生成一个几乎无限的where子句.

可以让你不用再mybatis里写一大堆l文件

注:在使用example类前 先学下MBG配置(Mybatis-Generator) /

我使用的是Maven项目,所以导入Mapper的Maven依赖

  1. <dependency>  
  2.   <groupId&batis</groupId>  
  3.   <artifactId>mapper</artifactId>  
  4.   <version>3.2.0</version>  
  5. </dependency>    

 

二、了解example成员变量

//升序还是降序
     //参数格式:字段+空格+asc(desc)
     protected String orderByClause;
     //去除重复
     //true是选择不重复记录
     protected boolean distinct;
     //自定义查询条件
     //Criteria的集合,集合中对象是由or连接
     protected List<Criteria> oredCriteria;
     //内部类Criteria包含一个Cretiron的集合,
     //每一个Criteria对象内包含的Cretiron之间
     //是由AND连接的
     public static class Criteria extends GeneratedCriteria {
         protected Criteria() {
             super(); 
         }
     }
     //是mybatis中逆向工程中的代码模型
     protected abstract static class GeneratedCriteria
     {…..}
     //是最基本,最底层的Where条件,用于字段级的筛选
     public static class Criterion {……}
 

(greater than) - 指相关的列必须大于方法参数中的值 
= (greater than or equal) - 指相关的列必须大于等于方法参数中的值 
< (less than) - 指相关的列必须小于于方法参数中的值 
<= (less than or equal) - 指相关的列必须小于等于方法参数中的值 
LIKE - 指相关的列必须 “like” 方法参数中的值. 这个方法不用必须加入 ‘%’, 您必须设置方法参数中的值. 
NOT LIKE - 指相关的列必须 “not like” 方法参数中的值. 这个方法不用必须加入 ‘%’, 您必须设置方法参数中的值. 
BETWEEN - 指相关的列必须在 “between” 方法参数中的两个值之间. 
NOT BETWEEN - 指相关的列必须不在 “not between” 方法参数中的两个值之间. 
IN - 指相关的列必须在传入的方法参数的list中. 
NOT IN - 指相关的列必须不在传入的方法参数的list中.
 

 


Example example = new Example(user.class);
 
for(int i=0;i < 10;i++) {
    ateCriteria().andEqualTo("roleCode",RoleCode)
        .andNotIn("status",Arrays.asList("0","1"))  //注意用的是类中的属性,不是数据库中的属性
        .andCondition("(FLAG <> '0' OR FLAG IS NULL)")
        .andCondition("(role_nodecode is null or role_nodecode         ='"&#NextRoleNodeCode+"')");
    example.selectProperties("serialNo", "roleCode", "employeeCode", "roleNodeCode");   
    example.setDistinct(true); // 去除重复,boolean型,true为选择不重复的记录。
    derBy("serialNo"); // 对应实体类中属性名
    example.setOrderByClause("SERIAL_NO desc"); // 对应表结构字段名称
 
    // 排序另外写法
    derBy("serialNo").asc().orderBy("employeeCode").asc();
 
    List<AfwFlowDtl> afwFlowDtlList = afwFlowDtlMapper.selectList(example);
 
    example.clear();// 把条件清空,可以循环使用,嵌套在for循环里面使用

}

注:

这里面有一个坑,就是.andCondition("(role_nodecode is null or role_nodecode ='"&#NextRoleNodeCode+"')");

若是和面的参数role_nodecode是字符串类型,对应的value值 要加' '
 

本文发布于:2024-01-28 23:57:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645742411229.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:详解   工具   mybatis
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23