Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sprint namedParameterJdbcTemplate batchUpdate with in子句_Java_Sql_Spring_Spring Jdbc_Jdbctemplate - Fatal编程技术网

Java sprint namedParameterJdbcTemplate batchUpdate with in子句

Java sprint namedParameterJdbcTemplate batchUpdate with in子句,java,sql,spring,spring-jdbc,jdbctemplate,Java,Sql,Spring,Spring Jdbc,Jdbctemplate,我使用spring将批处理记录插入数据库。但是我得到了这个错误:java.sql.SQLException:无法在java.util.ArrayList和java_对象之间转换。 你能帮帮我吗?我做错了什么 private static final String INSERT_BATCH_QUERY ="INSERT INTO TEST_TABLE (ID,TEST_ID) select :id, substring((SELECT ', ' + USERS.COMMON_NAME FROM

我使用spring将批处理记录插入数据库。但是我得到了这个错误:java.sql.SQLException:无法在java.util.ArrayList和java_对象之间转换。 你能帮帮我吗?我做错了什么

private static final String INSERT_BATCH_QUERY ="INSERT INTO TEST_TABLE (ID,TEST_ID) select :id,  substring((SELECT ', ' + USERS.COMMON_NAME FROM USERS WHERE USERS.ID IN ( :testIds ) FOR XML PATH('')), 2, 4000);


public class Test{

private int id;
private List<Intenger> testIds;
    //**getters and setters**//
}

public static void Main(String... args){
        List<Test> myTe=new ....
        SqlParameterSource[] sqlParameterSource = SqlParameterSourceUtils.createBatch(myTe.toArray());
        result = namedParameterJdbcTemplate.batchUpdate(INSERT_BATCH_QUERY, sqlParameterSource); 
}
如果我使用硬编码值:

private static final String INSERT_BATCH_QUERY ="INSERT INTO TEST_TABLE (ID,TEST_ID) select :id,  substring((SELECT ', ' + USERS.COMMON_NAME FROM USERS WHERE USERS.ID IN ( 1234,654,55 ) FOR XML PATH('')), 2, 4000);
或者当我只通过一个int时,它就工作了


请帮助:)

使用SqlParameterSource定义参数,以便查询将替换占位符
SqlParameterSource params=new-MapSqlParameterSource(“testIds”,testIds).addValue(“id”,id)

private static final String INSERT_BATCH_QUERY ="INSERT INTO TEST_TABLE (ID,TEST_ID) select :id,  substring((SELECT ', ' + USERS.COMMON_NAME FROM USERS WHERE USERS.ID IN ( 1234,654,55 ) FOR XML PATH('')), 2, 4000);