tkmybatis通用mapper实现在使用Example进行查询的几种方式

如下列举四种方式,但是不止四种哦。其中weekend方式需要升级jdk到1.8及以上。废话不代码!首先定义数据库表映射类:publicclassMybatisDemo{privateLongid;privateLongcount;privateStringname;publicLonggetId(){…

大家好,又见面了,我是你们的朋友全栈君。

如下列举四种方式,但是不止四种哦。

其中weekend方式需要升级jdk到1.8及以上。

废话不代码!

首先定义数据库表映射类:

public class MybatisDemo {
    private Long id;
    private Long count;
    private String name;

    public Long getId() {
        return id;
    }
    public Long getCount() {
        return count;
    }
    public String getName() {
        return name;
    }

//    setter……
}

此处省略了数据库表映射和set方法。

接下来就是实现example查询的几种方式,核心代码如下:

方式一:普通Example方式(从and方法开始可以实现动态sql拼接)

    Example example = new Example(CandidateBrandEntity.class);
    example
      //.selectProperties("cabId","cabName")
        .and().andEqualTo("cabDeleted",0)
        .andLike("cabName","%d%");

    // 排序
    example.orderBy("cabCreatedTime")
        /*.desc()*/
          .orderBy("cabId").desc();

    // 获得结果
    List<CandidateBrandEntity> brands = brandEntityMapper.selectByExample(example);

方式二:Criteria方式(可使用criteria完成动态sql拼接)

Example example = new Example(MybatisDemo.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("count", 0)
        .andLike("name", "%d%");
example.orderBy("count")
        //.desc()
        .orderBy("name").desc();
List<MybatisDemo> demos = mybatisDemoMapper.selectByExample(example);

方式三:Example.builder 方式(其中where从句中内容可以拿出来进行动态sql拼接)

Example example = Example.builder(MybatisDemo.class)
        .select("cabId","cabName")
        .where(Sqls.custom().andEqualTo("count", 0)
        .andLike("name", "%d%"))
        .orderByDesc("count","name")
        .build();
List<MybatisDemo> demos = mybatisDemoMapper.selectByExample(example);

方式四:Example.builder + Weekend方式,优势:不用输入属性名,避免数据库有变动或输入错误就会出错

//获得seekendsql
WeekendSqls<MybatisDemo> sqls = WeekendSqls.<MybatisDemo>custom();

//可进行动态sql拼接
sqls = sqls.andEqualTo(MybatisDemo::getCount,0).andLike(MybatisDemo::getName,"%d%");

//获得结果
List<MybatisDemo> demos = mybatisDemoMapper.selectByExample(Example.builder(MybatisDemo.class).where(sqls).orderByDesc("count","name").build());

 

 

参考内容:https://github.com/abel533/Mapper/wiki/6.example

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127756.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jquery删除数组中的某个元素_java数组删除指定位置元素

    jquery删除数组中的某个元素_java数组删除指定位置元素//删除for(varkinzjhm_Index_arr){if(zjhm_Index_arr[k]==zjhm){zjhm_Index_arr.splice(k,1);}}

    2022年8月10日
    7
  • Java-String类的作用和常用方法总结[通俗易懂]

    Java-String类的作用和常用方法总结[通俗易懂]String    String类是所有语言最常用的一个类,用于描述字符串事物。   String类在Java中被设计成final的,类不能被继承和修改,至于为什么要将String设计成final可以参考:            Java的String类不可变的好处    它为我们提供了多个方法对字符串进行操作。1,获取。 1.1字符串中的包含的字符数,也就是字符串的长度。     int…

    2025年5月25日
    1
  • Excel和CSV格式文件的不同之处

    Excel和CSV格式文件的不同之处Excel和CSV格式文件的不同之处来源:https://www.guru99.com/excel-vs-csv.htmlExcelCSV这是一个二进制文件,它保存有关工作簿中所有工作表的信息CSV代表CommaSeparatedValues。这是一个纯文本格式,用逗号分隔一系列值

    2022年7月21日
    9
  • 局域网arp断网攻击怎么解决_arp断网攻击连不上网

    局域网arp断网攻击怎么解决_arp断网攻击连不上网   关于局域网断网攻击,顾名思义,就是对局域网内某个IP或全部IP进行攻击,让局域网内某个IP或全部IP断网,这是不是很有趣。   原理:关于arp断网攻击是基于arp协议的缺陷,这其实是arp欺骗的时候配置错误引起的现象。就是以…

    2022年10月7日
    2
  • google搜索引擎怎么用_日本搜索引擎

    google搜索引擎怎么用_日本搜索引擎搜索引擎命令大全!1、双引号把搜索词放在双引号中,代表完全匹配搜索,也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配。bd和Google都支持这个指令。例如搜索:“seo方法图片”2、减号减号代表搜索不包含减号后面的词的页面。使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。Google和bd都支持这个指令。

    2025年10月21日
    2
  • 软件测试用例模板

    软件测试用例模板软件测试用例模板

    2022年7月17日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号