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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高等代数第二章行列式思维导图(行列式的知识点总结思维导图)

    HelloWorld,我的朋友,这里是一颗小白蛋,大千世界,很高兴以这样的方式与你相遇前言好久不见,这一次给大家带来考研线代中行列式的相关内容。2021考研数学复习全书+2021李永乐线性代数辅导讲义+2020张宇线代基础课+20211800题=知识技巧思维导图相关重点知识内容+易错点知识+技巧总汇+知识拓展=知识技巧思维导图一战上岸思维导图以题型为出发点,总结了几…

    2022年4月17日
    372
  • 如何在java中输出保留两位小数「建议收藏」

    如何在java中输出保留两位小数「建议收藏」在输出时用以下的代码:System.out.println(String.format(“%.2f”,sum));其中”%.2f”为保留两位小数,sum为要输出的数字。当然,用print输出也是可以的:System.out.print(String.format(“%.2f”,sum));…

    2022年7月7日
    77
  • 安装pycharm的步骤_pycharm安装教程2020

    安装pycharm的步骤_pycharm安装教程2020简介Jetbrains家族和Pycharm版本划分:pycharm是Jetbrains家族中的一个明星产品,Jetbrains开发了许多好用的编辑器,包括Java编辑器(IntelliJIDEA)、JavaScript编辑器(WebStorm)、PHP编辑器(PHPStorm)、Ruby编辑器(RubyMine)、C和C++编辑器(CLion)、.Net编辑器(Rider)、iOS/ma…

    2022年8月25日
    3
  • 小鹤双拼入门和小鹤音形的搜狗输入法配置方法[通俗易懂]

    小鹤双拼入门和小鹤音形的搜狗输入法配置方法[通俗易懂]记忆口诀秋闱皒软月,韵书迟落撇。阿宋穷带份羹,航岸快赢良况。邹霞夸草追鱼滨,鸟眠小鹤双拼。iueieuanue,unui_oie图月,书痴aongaieneng,anganing_ang建安,快赢,良况ou_aaouiin,iaoian瞎夸,追鱼记忆口诀①(官方版):QiuWeiRuanT_ue_veYunU_shuI_chiSong_iongDaiFenGengHangJ_an秋闱软月云梳翅,松拥

    2022年6月29日
    201
  • 极性电容和非极性电容并联(无极性电容种类)

    一个极性电容和一个无极电容并联在一起这是为了达到什么目的?作者:疯狂的蔬菜链接:https://www.zhihu.com/question/35624312/answer/63821377来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。电路原理图画成一个极性电容和非极性电容并联的形式,更加多地是为了在画板的过程中在PCB的丝印层添加相关的引

    2022年4月12日
    55
  • 常用放射性核素表_X射线核素的名称

    常用放射性核素表_X射线核素的名称常用放射性核素表原子序数及元素名称核素符号半衰期衰变类型括号内为每100次衰变中发生的次数主要带电粒子及其能量(MeV)括号内为平均100次衰变中发射的次数主要γ线能量(MeV)括号内为平均100

    2022年8月1日
    3

发表回复

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

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