// 条件(criteria) 分别为 cname, gender, cellphone, email

public List query(Customer criteria){

try{

// 给出 sql 模板

// 先给出一个 sql 语句的前缀

// WHERE 条件为 1=1, 方便后面增加其他语句, 要注意 sql 语句各个单词之间的空格

StringBuilder sql = new StringBuilder("SELECT * FROM t_customer WHERE 1=1");

// 用来装载参数的 List 集合

// 当判断一个条件存在后, 将该条件放入参数集合中

List params = new ArrayList();

// 判断各个条件是否存在

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.class),

params.toArray());

}catch(SQLException e){

throw new RuntimeException(e);

}

}

参考资料:

mysql多组合条件查询_多条件组合查询相关推荐

  1. 条件查询_多条件组合查询---测试用例设计

    一.假设查询因子:A,B,C,D,E(下拉框+复选框) 1.单独查询:A:B:C:D:E - 确保单独查询的正确性,这也是最基本的. 2.两个组合查询:AB:AC:AD:AE:BC:BD:BE:CD: ...

  2. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

  3. mysql连接与嵌套查询_数据库之嵌套查询与连接查询

    嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...

  4. lepus mysql 慢查询_天兔 -Lepus 慢查询分析平台配置

    想要实现慢查询查询分析,需要在被监控端安装percona-toolkit工具. 1.被监控端安装软件包 yum -y install perl-IO-Socket-SSL yum -y install ...

  5. java线程条件变量_使用条件变量(多线程笔记)

    条件变量属性: 使用条件变量可以以原子方式阻塞线程,知道某个特定条件为真为止.条件变量始终与互斥锁一起使用. 使用条件变量,线程可以以原子方式阻塞,知道满足某个条件为止.对掉件的测试时在互斥锁的保护下 ...

  6. mysql数据库实验查询_数据库表的查询操作(实验二)

    [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识. [实验要求]:掌握利用Select语句进行各种查询操作:单表查询.多表连接及查询.嵌套查询.集合查询等. [实验内容] ...

  7. 外键查询_传统关系型数据库查询性能提高思路

    相信现阶段依然有许多的企业信息化项目依然采用单体架构,其数据存储主要方式依然以关系型数据库为主,比如oracle.mysql.postgresql等.企业初期,各种原因导致研发人员身兼数职,都是全栈的 ...

  8. case when 子查询_标准SQL——子查询、分组查询、多表联查

    点击上方蓝色字关注我们!❈ 一.查询子句: 1.排序子句:order by 列,列.. [asc|desc]  排序, select * from user order by account desc ...

  9. .net函数查询_数据分析-SQL-复杂查询

    内容简介: 视图 子查询 标量子查询 关联子查询 各种函数 练习题 总结 一.视图 1.1 视图是什么? 数据库里面有很多表,表里放的是实际数据,视图中存放的是SQL查询语句,当我们用客户端(例如na ...

  10. order by 子查询_视图,子查询,标量子查询,关联子查询

    视图 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 1. 视图 视图内存放SQL查询语句,运行时运行该语句.查出的数据为临时数据 创建视图 create view as 视图名称 ...

最新文章

  1. python绘制月亮_Python函数
  2. eureka同步原理_Eureka工作原理
  3. python可变序列_python序列中可变数据类型有什么
  4. ModuleNotFoundError: No module named 'CommandNotFound'
  5. 《C和指针》——声明数组参数
  6. C++笔记整理(参考整理自各大博客)
  7. 问题二十:C++全局debug “ray tracing图形”实例
  8. 设计模式-第二篇之简单工厂模式
  9. arch Linux安装到U盘,如何把ArchLinux安装到U盘上
  10. MFC教程(Visual C++ 6.0)|合集 |更新中
  11. Laravel核心概念:服务容器(ServiceContainer),服务提供者(Service Provider),门面(Facade),契约(Contracts)
  12. 【多模态】《Visual7W: Grounded Question Answering in Images》论文阅读笔记
  13. 图片去水印的原理_图片中的水印怎么去除
  14. hdu 5234-三维背包
  15. html5 自动分享到朋友圈,html5手机端分享微信朋友圈代码
  16. Go语言小程序开发快速入门——一、用Gin框架实现简单的信息获取
  17. PL/SQL Developer使用技巧
  18. 如何修改Kestrel上传文件的大小
  19. 创业公司做数据分析(二)运营数据系统
  20. java 中对象的称呼

热门文章

  1. 轻松将C语言/C++程序打包成安装包,和大家分享你的成果(包学包会)
  2. 你不复盘,盘就复你,如何高效复盘
  3. 访问CentOS7光盘
  4. STM32入门教程——串口通讯
  5. 解读创客教育的核心功能定位
  6. 《Web GIS原理与应用开发》读书笔记(1)
  7. mysql returning_Returning
  8. 动态lacp和静态lacp区别_lacp静态与动态区别
  9. 守护网络安全 呵护精神家园 -- 网络安全现状(一)
  10. 移动终端基带芯片基本架构