首页 > 作文

Tk.mybatis零sql语句实现动态sql查询的方法(4种)

更新时间:2023-04-03 23:47:11 阅读: 评论:0

目录
实现方式:方式一:使用example实现方式二:使用example.createcriteria实现方氢氧化式三:使用example.builder实现方式四:使用weekendsqls实现

有时候,查询数据需要根据条件使用动态查询,这时候需要使用动态sql,通常我们会自己写动态sql来实现,比如:

<lect id="findstudentbycondition" resulttype="com.example.rvice.entity.student">    lect id, name, score from tbl_student    <where>      <if test="score !=null and score > 0">        score > #{score}      </if>      <if test="name !=null and name != ''">         <bind name="pattern" value=" '%' + name + '%' "/>        and name like #{pattern}      </if>    </where>    order by score desc  </lect>

这个sql是查询成绩大于90并且名字包含“i”的学生信息。但是有时候又加了一个条件,又要去改sql,改入参,有没有一种方式可以将写动态sql像写代码一样实现呢?如果你有这个想法,推荐你了解一下tk.mybatis。

关于tk.mybatis的介绍以及如何配置,本文暂不介绍,不了解的请自行百度艳成语,本文只介绍如何基于tk.mybatis实现不写sql语句也能实现动态sql查询。

实现方式:

1. 使用example实现

2. 使用example.createcriteria

3. 使用example.builder实现

4. 使用weekendsqls实现

方式一:使用example实现

/**   * 第一种:使用example查询   */  @test  public void testlectbyexample() {    example example = new example(student.class);    // 设置查询列    example.lectproperties("id","name","score");    // 动态sql    example.and()        .andgreaterthan("score",90)        .andlike("name", "%i%");    // 去重    example.tdistinct(true);    // 排序    example.orderby("score").desc();    list<student> students = studentmapper.lectbyexample(example);    system.out.println(students);  }

方式二棱镜计划:使用example.createcriteria实现

/**   * 第二种:使用example.createcriteria查询   */  @test  public void testlectbyexamplecriteria() {    example example = new example(student.class);    // 设置查询列    example.lectproperties("id","name","score");    // 动态查询    example.createcriteria()        .andgreaterthan("score",90)        .andlike("name", "%i%");    // 去重    example.tdistinct(true);    // 排序    example.orderby("score").desc();    list<student> students = studentmapper.lectbyexample(example);    system.out.println(students);  }

方式三:使用example.builder实现

/**   * 第三种:使用example.builder实现   */  @test  public void testlectbyexamplebuilder() {    example example = example.builder(student.class)        // 查询列        .lect("id","name","score")        // 动态sql        .where(sqls.custom()            .andgreaterthan("score",90)            .andlike("name","%i%"))        // 去重        .distinct()        // 排序        .orderbydesc("score")        .build();    list<student> students = studentmapper.lectbyexample(example);    system.out.println(students);  }

方式四:使用weekendsqls实现

/**   * 第四种:使用weekendsqls实现   */  @test  public void testlectbyweekendsqls() {    weekendsqls<student> sqls = weekendsqls.custom();    sqls = sqls        .andgreaterthan(student::getscore,90)        .andlike(student::getname,"%i%");    list<student> sysroles = studentmapper.星星lectbyexample(example.builder(student.class)        .lect("id","name","score")        .where(sqls)        .distinct()        .orderbydesc("score")        .build());    system.out.pri2017年清明节放假安排ntln(sysroles);   }

到此这篇关于tk.mybatis零sql语句实现动态sql查询的方法(4种)的文章就介绍到这了,更多相关tk.mybatis 动态sql查询内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-03 23:47:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/2dfb5c97b182ffa9c3e0b44bb36f123c.html

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

本文word下载地址:Tk.mybatis零sql语句实现动态sql查询的方法(4种).doc

本文 PDF 下载地址:Tk.mybatis零sql语句实现动态sql查询的方法(4种).pdf

标签:方式   动态   语句   本文
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图