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++;
}

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 认识单片机-单片机最小系统

    认识单片机-单片机最小系统现在很火的STC类51单片机的最小系统,其中分几部分:1.电源部分为图右上解的电源开头,5V输入给单片机进行供,常用的单片机系统电源电压有5V,3.3V,STC单片机也是有这两种不同电压的片子的,大家在做设计时需先确认系统电压后来进行选择。2.晶振部分,在图的左下角连接到单片机中的X1,晶振是什么作用哪?对单片机来讲,他就是心脏,没了晶振就单片机就没了心跳,就不可能正常运行了,晶振是提供单

    2022年8月30日
    4
  • 常用放射性核素表_X射线核素的名称

    常用放射性核素表_X射线核素的名称常用放射性核素表原子序数及元素名称核素符号半衰期衰变类型括号内为每100次衰变中发生的次数主要带电粒子及其能量(MeV)括号内为平均100次衰变中发射的次数主要γ线能量(MeV)括号内为平均100

    2022年8月1日
    5
  • 惠普电脑有电脑管家吗_电脑管家检测硬件就蓝屏

    惠普电脑有电脑管家吗_电脑管家检测硬件就蓝屏据海外媒体WindowsLatest的报道,大量的Windows10用户的设备最近频繁出现蓝屏,多家硬件设备厂商均中招。联想电脑管家安全团队已证实暂不涉及联想设备的国内用户。同时提醒广大国内用户,暂停近期微软发布的任何更新业务(包括暂停通过Vantage应用程序进行BIOS更新),等待微软官方给出修复补丁。据悉该蓝屏问题是由于近期的一次更新造成,蓝屏(BSOD)错误将会阻止windows10设备的…

    2022年8月13日
    11
  • 国内软件外包公司排行榜是怎么样的

    国内软件外包公司排行榜是怎么样的由于互联网技术的快速发展,特别是手机移动端的的普及,使得企业越来越需要开发自己自己的软件,但是软件开发人才缺口很大,企业没有这个技术实力去开发自己的软件,对于中小企业也不好招人,而这软件外包开发公司就可以帮助企业实现目标,这其中鱼龙混杂,让不少想要软件外包开发的企业难以选择,那么国内软件外包公司排行榜是怎么样的呢?下面为大家介绍华盛恒辉排名靠前的原因。1、报价适中提供同样服务…

    2022年5月26日
    67
  • idea激活码2019破解方法[通俗易懂]

    idea激活码2019破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    271

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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