不确定传入参数个数的数据库查询方法

有一种场景,当我们需要查询数据库中的一些数据时,这些数据可能是同一个类别的不同标号的数据
类似于下图这种
数据库中的一个表
这个表中的数据是属于 cid = 5 类别且同时又有不同的 rname值。

1.有时我们是根据 cid 和 rname 同时查找一些数据

2.有时也可能只用 rname 来查数据。这时候就可以加入一些小技巧。

String sql = "select count(*) from XXX where 1 = 1 ";//末尾有空格
StringBuider sb = new StringBuilder(sql);
List params = new ArrayList();
if(cid != 0){
	sb.append(" and cid = ?");
	params.add(cid);//添加? 对应的值
}

if(rname != null && rname.length() > 0){
	sb.append(" and rname like ? ");
	params.add("%"+rname+"%");
}

sql = sb.toString();
return template.queryForObject(sql, Integer.class, params.toArray());

这样考虑了有 cid 的情况和没有的情况。因为不确定有几个参数,所以我们传入的是一个参数列表。

StringBuffer对象代表一个字符序列可变的字符串,可以根据需要通过StringBuffer提供的append()、insert()等方法可以改变这个字符串对象的字符序列。这是把String 转化为 StringBuider的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值