首页 > 编程语言 > 详细

JAVA代理的使用

时间:2020-08-24 18:43:16      阅读:63      评论:0      收藏:0      [点我收藏+]

目的:根据配置信息封装mybatis的example。

1.要先进行字段的格式封装:首字母大写的驼峰式命名

2.遍历封装后的字段。使用代理获取值还有获取example封装

    public MAcChannelSpotBoExample getExampleByVo(MAcChannelSpotVo vo) {
        /**
         *  获取去重字段,并封装成list结构
         */
        MAcSpotRemDeplicateBo ruleBo =  mAcSpotRemDeplicateBoMapper.selectByPrimaryKey(vo.getRuleId());
        String[] removeDeplicates = ruleBo.getRemoveDeplicate().split(",");
        removeDeplicates = insert(removeDeplicates, "RULE_ID");
        List<String> removeDeplicateLows = new ArrayList();
        for(String s : removeDeplicates) {
            String ss = s.toLowerCase();
            String [] str = ss.split("_");
            StringBuffer newS = new StringBuffer();
            for(int i=0; i<str.length; i++) {
                newS.append(str[i].substring(0,1).toUpperCase()+str[i].substring(1));
            }
            removeDeplicateLows.add(newS.toString());
        }

        /**
         *  根据去重字段+ruleId,动态封装 example
         */
        MAcChannelSpotBoExample example = new MAcChannelSpotBoExample();
        MAcChannelSpotBoExample.Criteria criteria = example.createCriteria();
        if(StringUtils.isNotBlank(vo.getChannelSpotId())) {
            criteria.andChannelSpotIdNotEqualTo(vo.getChannelSpotId());
        }
        Method[] m = criteria.getClass().getMethods();
        Method[] m2 = vo.getClass().getMethods();
        try {
            for (String str : removeDeplicateLows) {
                for (int i = 0; i < m2.length; i++) {
                    if (("get" + str).toLowerCase().equals(m2[i].getName().toLowerCase())) {
                        Object value2 = m2[i].invoke(vo);
                        for(int j = 0; j < m.length; j++){
                            if(("and"+str + "EqualTo").toLowerCase().equals(m[j].getName().toLowerCase())){
                                m[j].invoke(criteria, value2);
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            LOG.error(e);
        }
        return example;
    }

 

JAVA代理的使用

原文:https://www.cnblogs.com/linhongwenBlog/p/13555156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!