记录一下。
需要在java中写sql语句,正好需要in的条件。本来使用的是如下代码。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("zxt");
list.add("lan");
list.add("hh");
String sqlFormat = "SELECT * from 表名 where u_id in (%s)";
String sql = String.format(sqlFormat, String.join(",", list));
System.out.println(sql);
}
但是测试发现出来的语句是SELECT * from 表名 where u_id in (zxt,lan,hh);
很明显,这不符合,如果u_id是数值类型的话,那么这样是满足的,但我的u_id是字符串类型
(不要问为什么,字段名都是我编的,但是这个字段确实是字符串的)
我们需要的sql语句是SELECT * from 表名 where u_id in ('zxt','lan','hh');这样的才对
那就需要自己进行数据拼接了。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("zxt");
list.add("lan");
list.add("hh");
StringBuffer sbuffer= new StringBuffer();
for(int i=0;i<list .size();i++){
sbuffer.append("\'" + list .get(i) + "\',");
}
String sql = "SELECT * from 表名 where u_id in (" + sbuffer.substring(0, sbuffer.length()-1) + ")";
System.out.println(sql);
}
打印结果如下:
问题解决!