求帮忙一个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)这是我写的方法名称! 展开
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)这是我写的方法名称! 展开
14个回答
展开全部
//不知道你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
展开全部
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();
}
}
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你俩方法试试:
1、吧最终的sql语句做一个替换操作。replaceAll(sql,',','\',\'')
2、拼接in里的那一部分时,把要拼接每一部分就使用单引号引起来先
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是你自己拼接上去的不?是的话逗号分割的每一部分都先用单引号引起来。再接上去。
这还不懂?那就别开发了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a = 101;
int b = 102;
String str = "select * from usr_info u where u.usr_id in ('"+a+"','"+b+"');";
System.out.println(str);
得出来的结果就是你需要的。
int b = 102;
String str = "select * from usr_info u where u.usr_id in ('"+a+"','"+b+"');";
System.out.println(str);
得出来的结果就是你需要的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询