Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 如何为每个值更改准备语句中的值_Java_Jdbc_Sql Insert - Fatal编程技术网

Java 如何为每个值更改准备语句中的值

Java 如何为每个值更改准备语句中的值,java,jdbc,sql-insert,Java,Jdbc,Sql Insert,为了成批执行insert,我正在执行下面的代码 String idlist=1,2,3; PreparedStatement stmt = conn .prepareStatement("INSERT INTO TEST.SAMPLE VALUES" + " (?, ?, ?, ?, ?, ?, ?,?,ARRAY("+ idlist +"))"; for (int i = 1; i <= ITERATION_MAX; i++) {

为了成批执行insert,我正在执行下面的代码

String idlist=1,2,3;
PreparedStatement stmt = conn
        .prepareStatement("INSERT INTO TEST.SAMPLE VALUES"
                + " (?, ?, ?, ?, ?, ?, ?,?,ARRAY("+ idlist +"))";
for (int i = 1; i <= ITERATION_MAX; i++) {

    idlist=listofdata.get(i).get_idlist();
    stmt.setInt(1, listofdata.get(i).get_id());
    stmt.setInt(2, listofdata.get(i).get_name());
    stmt.setInt(3, listofdata.get(i).get_place());
    stmt.setInt(4, listofdata.get(i).get_year());
    stmt.setInt(5, listofdata.get(i).get_day());
    stmt.setInt(6, listofdata.get(i).get_rollno());
    stmt.setInt(7, listofdata.get(i).get_main_subject());
    stmt.setArray(8, listofdata.get(i).get_elective());

    stmt.addBatch();
}

   stmt.executeBatch();
String idlist=1,2,3;
PreparedStatement stmt=conn
.prepareStatement(“插入测试样本值”
+“(?,?,?,,,,,,,,,,,数组(“+idlist+”)”;

对于(int i=1;i如果您不知道在
idlist
中有多少ID,则无法使用相同的准备语句,因为参数的数量会发生变化(即
的数量?

Prepared语句只能与完全相同的SQL字符串一起使用

但似乎必须始终具有相同数量的参数,因为它们是表中的列

然后用相应的
号构建SQL字符串。或者,如果它们可以为空(我想是这样),则为所有列使用


然后,当您设置参数时,您需要在idlist中循环,设置available,其余的参数设置为null。

我希望SCHEMA.TABLE是您故意混淆的,而不是您正在使用的名称。需要有人告诉您这是一个非规范化的模式。您的列表可以更好地规范为1:many父子关系ign键关系。我不认为问题在于父子外键关系。问题在于如何在每个准备好的语句中更新idlist的值。我认为您不理解规范化是什么。@duffymo在许多情况下,需要并使用非规范化的表(例如OLAP星型架构中的事实表)是的,但我怀疑这是其中之一。