获取实体对象的注解信息

public class QueryUnit {

    /**
     * 获取实体对象的注解信息(主要用于获取字段名称对应的数据库字段名称)
     *
     * @param c
     * @return Map
     */
    public static Map<String, String> getFieldsDec(Class c) {
        //处理反射
        Map<String, String> map = new HashMap<String, String>();
        for (Field field : TableInfoHelper.getAllFields(c)) {
            TableField fieldAnno = field.getAnnotation(TableField.class);
            if (fieldAnno != null) {
                map.put(field.getName(), fieldAnno.value());
            } else {
                TableId tableId = field.getAnnotation(TableId.class);
                if (tableId != null) {
                    map.put(field.getName(), tableId.value());
                }
            }
        }
        return map;
    }

    /**
     * sql语句解析
     *
     * @param query          查询对象实例
     * @param fieldCondition 条件信息
     * @return
     */
    public static <T> QueryWrapper getQuery(QueryWrapper<T> query, Map<String, String> map, FieldCondition fieldCondition) {
        if (ToolUtil.isEmpty(fieldCondition.getValue())) {
            return query;
        }
        if (fieldCondition.getConnectOpertion() != null) {
            if ("or".equals(fieldCondition.getConnectOpertion())) {
                query = query.or();
            }
        }
        String fieldName = fieldCondition.getFiled();
        if (map.containsKey(fieldName)) {
            fieldName = map.get(fieldName);
        }
        switch (fieldCondition.getOpertion()) {
            case "contain":
                return query.like(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "=":
                return query.eq(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "!=":
                return query.ne(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case ">":
                return query.gt(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "<":
                return query.lt(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case ">=":
                return query.ge(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "<=":
                return query.le(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "startwith":
                return query.likeRight(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            case "endwith":
                return query.likeLeft(ToolUtil.isNotEmpty(fieldCondition.getValue()), fieldName, fieldCondition.getValue());
            default:
                return query;
        }
    }


}

你可能感兴趣的:(java)