java - 如何从 ArrayList 收集 SQL 请求

标签 java sql

我有一个像这样的数组列表:

    List<String> list = new  ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");

我想将此信息插入到 SQL 查询字符串中,如下所示:

AND Column_X in ('A' ,'B' , 'C') 

你能帮我吗?

编辑:

谢谢你:) 我找到了其他解决方案,这就是我想要的:

Iterator<String> iterator = list.iterator();
    String sqlStr= "";
    while (iterator.hasNext()){
        sqlStr+= "'"+iterator.next()+"'";
        if(iterator.hasNext()) sqlStr+= ',';
    }
    System.out.println(sqlStr);

最佳答案

您可以使用 StringBuilder - 自己迭代列表,构造一个“,”分隔的字符串。或者使用 apache commons 项目中已经执行此操作的有用 API,例如 StringUtils.join()。 请记住,参数需要正确转义以避免语法错误,或更糟糕的是 SQL 注入(inject)攻击

关于java - 如何从 ArrayList 收集 SQL 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435928/

相关文章:

mysql - 使用别名 (AS) 的 MySQL 查询中的 SQL 错误

java - 如何创建向后兼容的 Android 分页应用程序小部件?

java - Java BigInteger nextProbablePrime 方法如何工作?

java - 使用 xpath 操作 json 文件的有效方法?

java - 为什么 Integer 类缓存值在 -128 到 127 范围内?

java - 如何连接到 PostgreSQL 服务器以查询数据库名称列表

php - MySQL 从键/值对表中选择

sql - ACL/角色管理 : Managing users with multiple roles & Conflicting Permisisons

java - 无法从webView.geturl获取任何返回值,(代码如下所示)

mysql - sql multiple where on join