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

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

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

/**
 * 根据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);
    }
}
作者:Java笔记
本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。
评论
登录以后才可以发布评论哦, 点击登录 发布评论
评论列表 2人参与,2条评论
abc
123213
2021-06-04 11:31:33
abc
111
2021-06-04 11:31:31