mysql 传入不定个数的参数_JDBC PreparedStatement 预编译语句 动态添加条件-SQL参数不定...

我是看这个帖子来做的,我只是把过程写的更小白一点。 JDBC查询动态封装

实现的效果是:动态添加xx=?这些条件

SELECT id FROM t_table WHERE id=? AND sex = ?

拼接预编译语句

开始我们要用到两个Vector来存储 参数值和参数类型

Vector vParamValue =new Vector();

Vector vParamType =new Vector();

接着声明一个带初始条件的SQL字符串,目的是之后拼接条件时,就不用考虑是否加AND的问题

String sql="SELECT id FROM t_table WHERE id > 0 ";

接着判断条件参数是否获取到,以决定是否拼接该条件

if(!name.equals(""))

{

sql += " AND name=? ";

vParamValue.add(name);

vParamType.add("String");

conditionCount++;//用来统计拼接的条件个数,方便后面给预编译语句的条件参数遍历赋值

}

再接着是给语句对象参数赋值

(之前不明白这里怎么把参数一一对应起来的。 后来想了下,其实很简单。

因为SQL条件位置与放在Vector中的参数值,参数类型,三者是一一一对应的。)

for(int i = 0; conditionCount > i; i++)

{

if("String".equals(vParamType.get(i).toString()))

{

ps.setString(i+1, vParamValue.get(i).toString());//参数所以从1开始,所以是i+1

}

if("int".equals(vParamType.get(i).toString()))

{

ps.setInt(i+1, Integer.parseInt(vParamValue.get(i).toString()));

}

}

最后就是执行啦

rs = ps.executeQuery();

完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值