最近项目用到PreparedStatement,根据输入条件查询数据,输入条件不为空,则参与查询,为空,则不参与查询。网上搜了,也是按照网上的方法,也不算原创,记录一下。

参考文章:https://blog.csdn.net/dream_broken/article/details/44681597/

代码如下:

Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {conn = FSJDBCUtil.getConnection();StringBuffer sqlb = new StringBuffer("select * from table t where 1=1 ");List<String> params = new ArrayList<String>();if(StringUtil.isNotBlank(paramsA)){sqlb.append(" and t.columA = ? ");params.add(paramsA);}if(StringUtil.isNotBlank(paramsB)){sqlb.append(" and t.columB like ? ");params.add("%"+paramsB+"%");}ps = conn.prepareStatement(sqlb.toString());int j=1;for(String str:params){ps.setString(j, str);j++;}rs = ps.executeQuery();} catch (Exception e) {e.printStackTrace();
}finally{FSJDBCUtil.close(rs, ps, conn);
}

对于参数类型不是同一类型的,处理办法:

List<Object> data = new ArrayList<Object>();
int j = 1;
for(Object obj:data){if(obj instanceof Integer){ps.setInt(j, (Integer)obj);}else if(obj instanceof String){ps.setString(j, (String)obj);}j++;
}

PreparedStatement 不定参数处理相关推荐

  1. C技巧:结构体参数转成不定参数

    下面这段程序是一个C语言的小技巧,其展示了如何把一个参数为结构体的函数转成一个可变参数的函数,其中用到了宏和内建宏"__VA_ARGS__",下面这段程序可以在GCC下正常编译通过 ...

  2. c语言里的多参数吗,C语言中不定参数的实现

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 但是请注意,由於 K&R C 中并不检查参数型态,so 在此是用 ANSI C 来说明,毕竟 ANSI C 是目前所有 C Compiler 都支 ...

  3. 函数参数 不定参数,和 默认参数

    实现查找一个字符串中是否包含若干"子串" function containsAll(haystack) { for (var i=1; i<arguments.length; ...

  4. iOS 实现不定参数方法

    在iOS要实现不定参数的函数,有一个方案是用C/C++中的va_list.va_start.va_arg.va_end来实现.这样实现需要一个哨兵参数,就是调用方法是最后必须要加一个nil或者0的参数 ...

  5. Java 反射 不定参数bug

    Java 反射 不定参数bug 遇到的第一个关于反射的bug:java.lang.IllegalArgumentException: wrong number of arguments的问题解析如下: ...

  6. 2020-11-28(不定参数的函数)

    c\c++将不定长参数的函数定义为: a.至少要有一个参数: b.所有不定长的参数类型传入时都是dword类型: c.需在某一个参数中描述参数的总个数或将最后一个参数赋值为结尾标记. 有了这三个特性, ...

  7. C、C++不定参数的使用

    不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多.除了格式化输出之外,我实在没看到多少应用.主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替 ...

  8. c语言int val,c语言不定参数与printf函数的实现

    今天学习了C语言不定参数,C语言中的不定参数主要靠这个头文件实现,这个头文件包含了va_list().va_start().va_end()三个宏,其用法为先声明一个va_list类型的变量,它用于访 ...

  9. python函数不定参数_python如何定义不定参数函数

    *args,可以传入任意多个参数 **args,以字典形式传入任意多个参数 元组形式: 1.定义函数 def test1(*args): print('################test1### ...

  10. c语言如何实现不定参数,C语言中不定参数的实现

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 但是请注意,由於 K&R C 中并不检查参数型态,so 在此是用 ANSI C 来说明,毕竟 ANSI C 是目前所有 C Compiler 都支 ...

最新文章

  1. 【转载】写博意味着什么?
  2. Highcharts Pie 饼图提示标签IE下重叠解决方法,及json数据绑定方法
  3. MTK平台的启动流程(secureboot)
  4. 创建采购申请---BAPI_REQUISITION_CREATE
  5. python2中的字符串编码注意事项
  6. 「前端组件化」该怎么理解?
  7. 【 HDU - 2594 】Simpsons’ Hidden Talents(KMP应用,求最长前缀后缀公共子串)
  8. Tracing mysqld Using DTrace
  9. springcould结合springbboot微服务 开发@^——^@ 模式讲解
  10. python练习题及答案-Python练习题
  11. 游戏开发之继承中的构造函数、析构函数及继承中的常见问题解决方案(C++基础)
  12. Velodyne VLP16激光雷达的使用(非常详细)
  13. 技术写作中的那些神兵利器
  14. MySQL必知必会(1)
  15. 项目管理工具dhtmlxGantt甘特图入门教程(五):甘特图实例特点
  16. 你所在专业的特色是什么计算机,专业特色是什么
  17. 字号-磅-毫米对应关系
  18. Power BI与PowerQuery、PowerPivot的关系
  19. 数据存储:数据备份:自动备份
  20. [19考研]寒假复习时间表

热门文章

  1. 有限维空间上的线性算子
  2. 基于springboot的网上零食购物系统
  3. QT 使用全局钩子监听鼠标事件和键盘事件
  4. 简历模板下载word格式 空白word简历模板下载 电子版个人简历下载
  5. IT近年最新技术一览
  6. linux 网络设置 DHCP
  7. JavaScript 特效三大系列总结
  8. 关于GOP和帧率、码率的关系
  9. win7计算机上缺少网络协议,win7系统安装ipx协议提示找不到相应的模块的解决方法...
  10. Couchbase SyncGateway