在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);
大量这样的代码,可以通过如下所示的反射技术生成,从而一劳永安逸,
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 条评论) |