首页 > 作文

如何利用反射生成 MyBatisPlus中QueryWrapper动态条件

更新时间:2023-04-05 01:58:39 阅读: 评论:0

目录
1.问题2.优化方案

1.问题

在mybatisplus中经常会用到如下所示的代码来构造查询条件:

querywrapper<ur> querywrapper = new querywrapper<>();if (urquery.getid() != null) {  querywrapper.eq("id", urquery.getid());}if (urquery.getname() != null) {高中班主任寄语  querywrapper.like("name", urquery.getname());}if (urquery.getnickname() != null) {  querywrapper.like("nickname", urquery.getnickname());}if (urquery.getaccount() != null) {  querywrapper.eq("account", urquery.getaccount());}if (urquery.getgender() != null) {  querywrapper.eq("gender", urquery.getgender());}if (urquery.getbirth1() != null) {  querywrapper.ge("birth", urquery.getbirth1());}if (us本科学院erquery.getbirth2() != null) {  querywrapper.le("birth", urquery.getbirth2());}if (urquery.gettel() != null) {一纲四目  querywrapper.eq("tel", urquery.gettel());}if (urquery.getemail() != null) {  querywrapper.eq("email", urquery.getemail());}if (urquery.getqq() != null) {  querywrapper.eq("qq", urquery.getqq());}if (urquery.getwechat() != null) {  querywrapper.eq("wechat", urquery.getwechat());}if (urquery.gethomepage() != null) {  querywrapper.eq("home_page", urquery.gethomepage());}//.........bamapper.lectpage(page, querywrapper);

大量这样的代码,可以通过如下所示的反射技术生成,从而一劳永安逸,

2.优化方案

public class app{  public static void main(string[] args) throws exception {    querywrapper<dept> querywrapper = new querywrapper<>();    dept dept = dept.builder()        .deptno(1234)//        .dname("sales")        .loc("newyork")        .build();    method[] methods 冯唐经典句子= dept.class.getdeclaredmethods();    for (method method : methods) {      string methodname = method.getname();      if (methodname.contains("get")) {        object res = method.invoke(dept, null);        if(res != null){          string columnname = getcolumnname(methodname);          querywrapper.eq(columnname,res);        }      }    }    system.out.println(querywrapper);//在此处设置断点,可以查看保存到querywrapper中的值  }  // 根据getter方法名得到对应表的字段名  public static string getcolumnname(string name) {    stringbuffer sb = new stringbuffer();    name = name.substring(3, name.length()); //去掉get前缀   电脑不出声音怎么办 char[] chars = name.tochararray();    for (int i = 0; i < chars.length; i++) {      char item = chars[i];      if (item > 65 && item < 90) {//大写字母        sb.append("_");        sb.append((char)(item+32));      }el {        sb.append(item);      }    }    return sb.deletecharat(0).tostring();  }}

到此这篇关于如何利用反射生成 mybatisplus中querywrapper动态条件的文章就介绍到这了,更多相关反射生成 mybatisplus中querywrapper动态条件内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-05 01:58:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/66857114b61adf91813dbe0e17a7d289.html

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

本文word下载地址:如何利用反射生成 MyBatisPlus中QueryWrapper动态条件.doc

本文 PDF 下载地址:如何利用反射生成 MyBatisPlus中QueryWrapper动态条件.pdf

上一篇:次氯酸钙消毒
下一篇:返回列表
标签:反射   条件   所示   代码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图