PreparedStatement 不定参数处理「建议收藏」

PreparedStatement 不定参数处理「建议收藏」最近项目用到PreparedStatement,根据输入条件查询数据,输入条件不为空,则参与查询,为空,则不参与查询。网上搜了,也是按照网上的方法,也不算原创,记录一下。参考文章:https://blog.csdn.net/dream_broken/article/details/44681597/代码如下:Connectionconn=null;PreparedStatem…

大家好,又见面了,我是你们的朋友全栈君。

最近项目用到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++;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137790.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据库置疑的解决方法_列族数据库

    数据库置疑的解决方法_列族数据库数据库置疑处理文档修订记录日期Date修订版本RevisionVersion修改描述ChangeDescription作者Author2010-04-261.0格式化UltraSQL目录一、知识点简介1.DBCC中的CHECKDB命令2.重置置疑状态3.sp_add_log_file_reco…

  • photoshop是目前图像处理理最顶级的一款软件_图片处理软件app

    photoshop是目前图像处理理最顶级的一款软件_图片处理软件app说到照片和图像编辑/操纵,真的没有更好的应用,AdobePS图象处理软件。 摄影师和创意工作室会同意这是总理的照片编辑应用期。不幸的是,PS图象处理软件还配备了一个陡峭的学习曲线和价格标签,我们必须考虑我们不会使用矫枉过正的1/3的功能包装成PS图象处理软件。 记住让我们看一些免费的在线和客户端安装的应用程序可以在互联网上看。 选项是巨大的所以我缩小了我的审查,只有最好的在线和客户端安装

  • rails 新建和删除model和controller

    rails 新建和删除model和controller

  • 高等数学积分公式大全推导_50个常用不定积分公式表

    高等数学积分公式大全推导_50个常用不定积分公式表高等数学积分公式大全导数公式:基本积分表:三角函数的有理式积分:曲率:很多其它參见:http://wenku.baidu.com/view/983d572a915f804d2a16c104.htmlh

  • 阿里异构离线数据同步工具/平台DataX「建议收藏」

    阿里异构离线数据同步工具/平台DataX「建议收藏」​DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS等各种异构数据源之间高效的数据同步功能。

  • 机器学习python_深入浅出Python机器学习[PDF][176.39MB]

    机器学习python_深入浅出Python机器学习[PDF][176.39MB]内容简介机器学习正在迅速改变我们的世界。我们几乎每天都会读到机器学习如何改变日常的生活。如果你在淘宝或者*这样的电子商务网站购买商品,或者在爱奇艺或是腾讯视频这样的视频网站观看节目,甚至只是进行一次百度搜索,就已经触碰到了机器学习的应用。使用这些服务的用户会产生数据,这些数据会被收集,在进行预处理之后用来训练模型,而模型会通过这些数据来提供更好的用户体验。此外,目前还有很多使用机器学习技术的产品或…

    2022年10月17日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号