前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis plus 根据model的字段,自动拼生成条件

mybatis plus 根据model的字段,自动拼生成条件

作者头像
小贝壳
发布2021-05-08 14:51:38
1K0
发布2021-05-08 14:51:38
举报
文章被收录于专栏:贝塔博客贝塔博客

2021-05-06 发表在 编程语言 16

mybatis plus 根据model的字段,自动拼生成条件

代码语言:javascript
复制
/**
 * 根据model的字段,自动拼生成条件
 */
public class QueryHelper {

    public static <T> QueryWrapper<T> getQuery(T model) {

        var query = new QueryWrapper<T>();
        Arrays.asList(model.getClass().getDeclaredFields()).forEach(field -> {
            field.setAccessible(true);
            try {
                var value = field.get(model);
                var column = getColumn(field.getName());
                if (value != null) {
                    query.eq(column, value);
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        });

        return query;
    }

    private static String getColumn(String name) {
        var sb = new StringBuffer();
        for (int i = 0; i < name.length(); i++) {
            char chat = name.charAt(i);
            if (chat > 64 && chat < 91) {
                sb.append("_");
                sb.append(String.valueOf(chat).toLowerCase(Locale.ROOT));
            } else {
                sb.append(chat);
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        var model = new Channel();
        model.setCompanyId("123");

        var query = getQuery(model);
        System.out.println(query);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档