求帮忙一个java的sql语句拼接,条件是 in 包括! 10

这句是我需要的结果:select*fromusr_infouwhereu.usr_idin('101','102');可我在java里拼接后打出来的结果是:select*... 这句是我需要的结果:
select * from usr_info u where u.usr_id in ('101','102');
可我在java里拼接后打出来的结果是:
select * from usr_info u where u.usr_id in ('101,102');
求怎么把','加上!
大神详细说明下,或给一个例子?谢谢了啊!
public List queryOrgInfoList(Map<String, String> cnds)这是我写的方法名称!
展开
 我来答
金牛座250

2017-07-22 · 超过33用户采纳过TA的回答
知道答主
回答量:77
采纳率:33%
帮助的人:20.6万
展开全部
//不知道你usr_id怎么传入,现假设 ids =[101,102]
String sql = "select * from usr_info u where u.usr_id in ("
StringBuilder sd = new StringBuilder(sql);
for(int i=0;i<ids.length();i++){
   //实际操作,就是添加 "'101‘,"
   sb.append("'").append(ids[i]).append("',");   
}
sb.deleteAt(sb.length-1); //删除最后一个逗号

sb.append(");");

System.out.print(sb.toString());
匿名用户
2017-07-22
展开全部

这样不行吗?

String	sql = "select * from usr_info u where u.usr_id in ('101','102')";

效果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
andygulin
2012-02-08 · TA获得超过1678个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1104万
展开全部
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
public static void main(String[] args) {
Map<String, String[]> cnds = new HashMap<String, String[]>() {
{
this.put("u.usr_id", new String[] { "1", "2" });
}
};
new Test().queryOrgInfoList(cnds);
}

public List queryOrgInfoList(Map<String, String[]> cnds) {
String sql = "select * from usr_info u ";
if (null != cnds && cnds.size() > 0) {
sql += " where ";
for (Map.Entry<String, String[]> v : cnds.entrySet()) {
sql += v.getKey() + " in ";
String[] value = v.getValue();
int len = value.length;
int i = 0;
sql += "(";
for (String val : value) {
sql += "'" + val + "'";
if (++i < len) {
sql += ",";
}
}
sql += ")";
}
}
System.out.println(sql);
return new ArrayList();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友771a8a6d4
2012-02-08 · TA获得超过625个赞
知道小有建树答主
回答量:524
采纳率:0%
帮助的人:433万
展开全部
给你俩方法试试:
1、吧最终的sql语句做一个替换操作。replaceAll(sql,',','\',\'')
2、拼接in里的那一部分时,把要拼接每一部分就使用单引号引起来先
追问
说的什么玩意啊!说清楚点,或给个例子
追答
这还不明白?
1、你的最终sql语句:
sql=“select * from usr_info u where u.usr_id in ('101,102');
”;sql.replaceAll(',','\',\'');
2、你不是条件是in么,in是你自己拼接上去的不?是的话逗号分割的每一部分都先用单引号引起来。再接上去。

这还不懂?那就别开发了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tan4856423
推荐于2017-07-22 · TA获得超过170个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:202万
展开全部
int a = 101;
int b = 102;
String str = "select * from usr_info u where u.usr_id in ('"+a+"','"+b+"');";
System.out.println(str);
得出来的结果就是你需要的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式