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)


相关推荐

  • Mac配置Maven环境[通俗易懂]

    Mac配置Maven环境[通俗易懂]1.下载maven包到本地https://maven.apache.org/download.cgi1.在应用程序找到终端(实用工具)文件夹里面2.输入命令:vi~/.bash_profile输入i进入编辑模式输入:(注意⚠️M2_HOME需要填写为自己的路径哦~)exportM2_HOME=/Library/apache-maven-3.5.3exportPATH…

  • tomcat 配置pfx证书

    tomcat 配置pfx证书server.xmltomcat根目录创建cert文件夹,把文件xx.pfx文件放进去<Connectorport=”80″protocol=”HTTP/1.1″connectionTimeout=”20000″redirectPort=”443″URIEncoding=”UTF-8″/><C…

  • pycharm 2021.7.20 激活码【2021最新】

    (pycharm 2021.7.20 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZP…

  • Linux下安装mysql8.0.20

    Linux下安装mysql8.0.20文章目录Linux下安装mysql8.0.20安装前准备安装Linux下安装mysql8.0.20安装前准备1.下载地址:2.检测是否安装过mysql#检测是否安装过mysqlrpm-qa|grepmysql#删除命令rpm-e–nodepsmysql-libs-5.1.73-5.el6_6.x86_643.查询所有Mysql对应的文件夹(删除)whereismysqlrm-rf/usr/lib64/mysql/usr/share/mysqlfin

  • BaseDao.util(虎大将军)

    BaseDao.util(虎大将军)

  • pycharm django环境搭建_创建web项目

    pycharm django环境搭建_创建web项目1、Python环境搭建博主版本选择:Python2.7.15、Django1.11.82、pycharm安装pycharm激活成功教程版下载地址: 3、pycharm创建Django项目在软件安装和环境配置完成后,打开Pycharm.Step1.点击 File–>NewProject 弹出如下窗口Step…

发表回复

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

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