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


相关推荐

  • 即时通讯源代码,im源码功能全套[通俗易懂]

    即时通讯源代码,im源码功能全套[通俗易懂]即时通讯源代码,im源码,im源代码即时通讯全套源码语言:C/C++语言编写,VC++开发平台产品包含完善的即时通讯系统,是一套集即时通讯和视频会议为一体的企业级办公协同交流产品,可以广泛应用于政府、企业、教育机构和公司等客户端:大致功能(具体以产品演示为准):在线文字聊天离线留言历史消息记录查询 公告消息提醒语音聊天 视频聊天群发留言 输入状态感知个…

    2022年5月14日
    247
  • Offsetof用法「建议收藏」

    Offsetof用法「建议收藏」#include<stddef.h>#include<stdio.h>structaddress{charname[50];charstreet[50];intphone;};intmain(){printf(“address结构中的name偏移=%d字节。\n”,offsetof(structaddress,name));printf(“address结构中的street偏移=%d字节。\n”,offsetof(s

    2022年8月22日
    6
  • python 数组反转

    python 数组反转python中有一个列表a=[1,2,3,4,5,6]如果想反转该数组怎么办呢?一行代码搞定-Python代码1a = a[::-1]

    2022年4月27日
    52
  • serialized objects

    serialized objectsThisstartedagain…athreadfrom*****:WhatdoyouconsiderabestpracticeforserialVersionUID?T______________________________________________From:*******Sent:Thursday,Nov…

    2022年6月16日
    25
  • 江门python培训机构

    江门python培训机构猿辅导接近完成新一轮融资:腾讯领投,估值75亿美元据路透社报道,知情人士称,在线教育平台猿辅导接近完成新一轮融资,估值约为75亿美元。本轮融资由腾讯控股公司和私募股权公司高瓴资本领投。对此,猿辅导向多知网表示“消息不准确”,暂未进一步说明。腾讯和高瓴资本均暂未对融资消息置评。教育部、财政部:实施教师在线教学能力提升行动教育部、财政部印发《关于做好2020年中小学幼儿园教师国家级培训计划组织实施工作的通知》。通知提出,实施教师在线教学能力提升行动,已经或计划开展在线教学的省(区、市),要通过线上培

    2022年6月9日
    47
  • 女生学java怎么样?女孩子学java会不会很难?

    女生学java怎么样?女孩子学java会不会很难?不少男性开发者认为“女性水平比较低,也就做做测试”,这是男性领导者经常说的一句话,虽然此话含有其个人经验和行业经验,但我们并不完全认同。女生学java怎么样?女生学java是一个很好的选择,因为女性比男性有着独特的优势,就这个行业而言: 一是女性在细心和耐力方面比男性表现得更为突出; 二是在技术管理方面女性更有优势。 现在的研发项目中很少是个人独立去做一件事情。多数是需要团队合作的。通常那些技术非常好的人,在对团队的管理及项目管理方面却是表现很一般。因为在管理中,沟通和协调是

    2022年7月7日
    27

发表回复

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

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