条件查询的sql拼接 参数拼接

public List<Product> findAll(Product product) throws SQLException {

//1.1 拼凑sql语句,格式:and 属性 符号 ?

StringBuilder builder = new StringBuilder();

//1.2 拼凑实际参数。实际参数可重复、参数需要顺序,所以选择List集合

List<Object> paramsList = new ArrayList<Object>();

//2.1 分类不为空 ,添加分类条件

if(product.getCategory_id() != null && !"".equals(product.getCategory_id())){

builder.append(" and category_id = ? ");

paramsList.add(product.getCategory_id());

}

//2.2 商品名不为空,添加商品名条件

if(product.getPname() != null && !"".equals(product.getPname())){

builder.append(" and pname like ? ");

//商品名需要模糊查询即可,需要手动的添加%

paramsList.add("%"+product.getPname()+"%");

}

//3 转换成需要的类型

String condition = builder.toString();

Object[] params = paramsList.toArray();

QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());

String sql = "select * from product where 1=1 " + condition;

return queryRunner.query(sql, new BeanListHandler<Product>(Product.class), params);

项目:条件查询 通过StringBulider和ArrayList(参数有序) 手动拼接sql的更多相关文章

  1. python 根据传进来的参数,动态拼接sql

    根据传进来的参数,动态拼接sql,可用于实现一个方法,有些字段不确定,又用到的情况,如查询,三个查询条件,有的时候只用到一个查询条件,其他用不到则不需要拼接 def show_runjob_detai ...

  2. thinkphp5.0多条件模糊查询以及多条件查询带分页如何保留参数

    1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...

  3. springboot后端实现条件查询,要配合使用mybatis

    package cn.com.dyg.work.sqlgen; import cn.com.dyg.work.common.exception.DefException; import cn.com. ...

  4. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  5. 多条件查询接收很多参数的时候要用Map接收。

    好处是,以后修改查询条件的时候不用从接口,到实现类,到controller的参数都要修改, 假如加一个查询条件,只需要前端多传一个参数值,都用map<>键值对接收,只需要在 service ...

  6. jqGrid jqGrid分页参数+条件查询

    HTML <div class="row"> <div class="col-sm-20"> <form id="for ...

  7. FineReport: 参数为空选出全部值(按条件查询,空条件时直接过滤,不进行查询。。)

    在Java报表软件FineReport中,选择特定的参数(如下图中的姓名.身份证号等)后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需要返回数据时该怎样处理呢?应该过滤掉这个条件,不按这 ...

  8. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  9. javascript:设置URL参数的方法,适合多条件查询

    适用场景:多条件查询情况,如下图所示: 通过设置URL参数,再结合数据源控件设置的RUL参数,就能进行简单的多条件查询了. javascript函数: <mce:script type=&quo ...

随机推荐

  1. LeetCode:二叉树的前、中、后序遍历

    描述: ------------------------------------------------------- 前序遍历: Given a binary tree, return the pr ...

  2. python 3 协程函数

    python 3 协程函数 1:把函数的执行结果封装好__iter__和__next__,即得到一个迭代器 2:与return功能类似,都可以返回值,但不同的是,return只能返回一次值,而yiel ...

  3. Docker 单机网络

    Docker Network相关命令 root@ubuntu:~# docker network --help Usage: docker network COMMAND Manage network ...

  4. read + 计算

    #!/bin/sbin read -p "please input first number:" a read -p "please input second numbe ...

  5. 最小生成树prim算法 POJ2031

    #include<iostream> #include<algorithm> #include<string.h> #include<ctype.h> ...

  6. GIT使用[git remove untracked working file]

    使用GIT进行merge的时候, git merge --no-ff master 如果merge之后出现问题, 想进行回退, 可以使用 git reset --hard HEAD 来回退到最新的版本 ...

  7. centos5.5源更新方法(网易163源 很快的源)

    http://blog.chinaunix.net/uid-24993824-id-189965.html 1.首先,打开终端,获取root权限 2.关闭fastestmirror插件         ...

  8. 仿联想商城laravel实战---1、仿联想商城需求和数据库设计(lavarel如何搭建项目)

    仿联想商城laravel实战---1.仿联想商城需求和数据库设计(lavarel如何搭建项目) 一.总结 一句话总结: composer引入lavarel.配置域名.配置apache 1.项目名 le ...

  9. maven建ssh项目的pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  10. Linux-Rsync命令参数详解

    在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来.rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进 ...