求帮忙一个java的sql语句拼接,条件是 in 包括!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求帮忙一个java的sql语句拼接,条件是 in 包括!相关的知识,希望对你有一定的参考价值。
这句是我需要的结果:
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)这是我写的方法名称!
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()); 参考技术A
这样不行吗?
String sql = "select * from usr_info u where u.usr_id in ('101','102')";效果:
参考技术B 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();
参考技术C 给你俩方法试试:
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 b = 102;
String str = "select * from usr_info u where u.usr_id in ('"+a+"','"+b+"');";
System.out.println(str);
得出来的结果就是你需要的。
以上是关于求帮忙一个java的sql语句拼接,条件是 in 包括!的主要内容,如果未能解决你的问题,请参考以下文章
mybatis-plus小课堂:多表查询案例篇(apply 拼接 in SQL,来查询从表某个范围内的数据)