IntelliJ IDEA教程 centos 开源商城系统 数据算法 jsp ipad redis常用语句 ant electron seo vue组件注册 vue例子 vue全局组件 系统后台模板 mac安装hadoop etc文件夹 android常用布局 coreldraw入门学习 git登录命令 配置tomcat环境变量 mysql卸载工具 mysql重启 linux查询文件内容 linux启动mysql命令 range函数python python运行环境 mysql教程 python语言入门 python命令 java创建文件 java代码注释 java求阶乘 java遍历set linux系统如何安装 内存整理软件 蒙文字体 跳一跳脚本 图解深度学习 笔记本测试软件 英雄联盟崩溃
当前位置: 首页 > 学习教程  > 编程语言

关于参数校验的几种情况以及简化if判断,进行代码的优化

2020/8/11 20:48:39 文章标签:

对于前端传入的参数,或者我们查询出来的参数我们需要就参数进行参数的校验.
参数校验可以提高代码的健壮性,同时阻止不必要的查询,减少了和数据库之间的交互,一定程度上优化了数据库的性能.
我们一般的参数校验

 if (searchMap.get("image") != null && !"".equals(searchMap.get("image")) {
            throw new RuntimeException();
 }

JDK1.7的方案

 if (Objects.isNull(searchMap)) {
            throw new RuntimeException();
 }

JDK1.8方案

Optional optional = Optional.of(searchMap);
        if (!optional.isPresent()) {
            throw new RuntimeException();
        }

或者使用注解

@NonNull Integer id

之前进行非空校验需要大量写if语句,通过三木运算符和criteria的特性(“如果为空还是criteria的本身”)

 /**
     * 构建查询对象
     *
     * @param searchMap
     * @return
     */
    private Example createExample(Map<String, Object> searchMap) {
        Example example = new Example(Spec.class);
        Example.Criteria criteria = example.createCriteria();
        Optional optional = Optional.of(searchMap);
        if (!optional.isPresent()) {
            throw new RuntimeException();
        }
        String name = (String) searchMap.get("name");
        String options = (String) searchMap.get("options");
        String id = (String) searchMap.get("id");
        String seq = (String) searchMap.get("seq");
        String templateId = (String) searchMap.get("templateId");

        criteria = StringUtils.isEmpty(name) ? criteria : criteria.andLike("name", "%" + searchMap.get("name") + "%");
        criteria = StringUtils.isEmpty(options) ? criteria : criteria.andLike("options", "%" + searchMap.get("options") + "%");
        criteria = StringUtils.isEmpty(id) ? criteria : criteria.andEqualTo("id");
        criteria = StringUtils.isEmpty(seq) ? criteria : criteria.andEqualTo("seq");
        criteria = StringUtils.isEmpty(templateId) ? criteria : criteria.andEqualTo("templateId");
            return example;
    }

本文链接: http://www.dtmao.cc/news_show_100424.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?