Java sprint namedParameterJdbcTemplate batchUpdate with in子句
我使用spring将批处理记录插入数据库。但是我得到了这个错误:java.sql.SQLException:无法在java.util.ArrayList和java_对象之间转换。 你能帮帮我吗?我做错了什么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
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);