zoukankan      html  css  js  c++  java
  • 多条件组合查询

    // 条件(criteria) 分别为 cname, gender, cellphone, email
    public List<Customer> query(Customer criteria){
        try{
            // 给出 sql 模板
    
            // 先给出一个 sql 语句的前缀
            // WHERE 条件为 1=1, 方便后面增加其他语句, 要注意 sql 语句各个单词之间的空格
            StringBuilder sql = new StringBuilder("SELECT * FROM t_customer WHERE 1=1");
    
            // 用来装载参数的 List 集合
            // 当判断一个条件存在后, 将该条件放入参数集合中
            List<Object> params = new ArrayList<Object>();
    
            // 判断各个条件是否存在
            String cname = criteria.getCname();
            if(cname != null && !cname.trim().isEmpty()){
    
                // 向 sql 模板中添加参数, 模糊查询
                sql.append(" and cname like ?");
    
                // 向 list 集合中添加参数
                params.add("%" + cname + "%");
            }
    
            String gender = criteria.getGender();
            if(gender != null && !gender.trim().isEmpty()){
                sql.append(" and gender=?");
                params.add(gender);
            }
    
            String cellphone = criteria.getCellphone();
            if(cellphone != null && !cellphone.trim().isEmpty()){
                sql.append(" and cellphone like ?");
                params.add("%" + cellphone + "%");
            }
    
            String email = criteria.getEmail();
            if(email != null && !email.trim().ieEmpty()){
                sql.append(" and email like ?");
                params.add("%"+email+"%");
            }
    
            // 执行 qr 方法
            // 注意将 sql 语句转换为 String 类型
            // 将 params 转换为数组类型
             QueryRunner qr = new QueryRunner();
             qr.query(sql.toString(),
                        new BeanListHandler<Customer>(Customer.class),
                        params.toArray());
        }catch(SQLException e){
            throw new RuntimeException(e);
        }
    }
    

    参考资料:

  • 相关阅读:
    把本地的jar包安装到maven库中
    mybatis 查询
    freemarker
    python——线程相关
    【python-sql】sql操作时遇到的坑
    专项测试——移动app安装包检测
    【Android端 adb相关】adb相关总结
    for 语句
    Python2.x与3​​.x版本区别
    Python 运算符
  • 原文地址:https://www.cnblogs.com/linkworld/p/7628823.html
Copyright © 2011-2022 走看看