Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 )设置查询参数的方法。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,partnerID很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代_Java_Sqlite_Jdbc - Fatal编程技术网

Java )设置查询参数的方法。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,partnerID很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代

Java )设置查询参数的方法。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,partnerID很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代,java,sqlite,jdbc,Java,Sqlite,Jdbc,)设置查询参数的方法。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,partnerID很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代码时,我在int-idColumn=rs.findColumn(“ID”)行上得到java.sql.SQLException:ResultSet-closedJDBC是否会在执行批处理时自动关闭结果集?@UsefulUserName在同一连接上


)设置查询参数的方法。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,
partnerID
很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代码时,我在
int-idColumn=rs.findColumn(“ID”)行上得到
java.sql.SQLException:ResultSet-closed
JDBC是否会在执行批处理时自动关闭结果集?@UsefulUserName在同一连接上生成新语句时,sqlite的JDBC实现似乎会关闭结果集。您可以重写它,以在单独的循环中获取父ID,并在运行时将它们与键配对。然后遍历这些对,将它们添加到批处理中,并在最后调用
executeBatch()
。感谢您的输入,但我没有像我在对Tomer Shemesh的评论中所说的那样发布完整的帖子。因此,
partnerID
很遗憾确实发生了变化。@UsefulUserName编辑很高兴地处理了这个问题:-)好的,再次感谢;)但是当我使用您的代码时,我在
int-idColumn=rs.findColumn(“ID”)行上得到
java.sql.SQLException:ResultSet-closed
JDBC是否会在执行批处理时自动关闭结果集?@UsefulUserName在同一连接上生成新语句时,sqlite的JDBC实现似乎会关闭结果集。您可以重写它,以在单独的循环中获取父ID,并在运行时将它们与键配对。然后遍历这些对,将它们添加到批处理中,并在最后调用
executeBatch()
。为了使用WHERE ID In子句,请确保您的ID被分成999或1000个批处理,因为oracle在子句中有接受1000个元素的限制,所以我发布的代码不完整。在删除一些杂乱内容(System.out.println等)的同时,我还意外地删除了
rs.next()
。我想说的是,
partnerID
确实发生了变化。或者至少应该这样做。为了使用WHERE ID In子句,请确保您的ID被分成999或1000个批次,因为oracle在第条中有接受1000个元素的限制,我发布的代码不完整。在删除一些杂乱内容(System.out.println等)的同时,我还意外地删除了
rs.next()
。我想说的是,
partnerID
确实发生了变化。或者至少应该这样。
public static void partnerStmt(ArrayList<Integer> keys, int age, int sex, int variable){
    int amount = keys.size();
    int ageMin = age - variable;
    int ageMax = age + variable;

    if (ageMin < 18)
        ageMin = 18;

    String select = "SELECT ID FROM individuen WHERE Jahre BETWEEN " 
            + ageMin +" AND "+ ageMax + " AND family IS 2 AND married IS NULL AND Sex "
            + "IS " + sex + " ORDER BY RANDOM() LIMIT " +amount+";";

    try {
        Statement stmt = DBController.connection.createStatement();
        ResultSet rs = stmt.executeQuery(select);
        for (int i = 0; i < keys.size(); i++) {
            int key = keys.get(i);
            int idColumn = rs.findColumn("ID");
            int partnerID = rs.getInt(idColumn);

            PreparedStatement person = DBController.connection
                    .prepareStatement("UPDATE individuen set Partner = " + partnerID +  
                    " WHERE ID = " + key);
            person.executeUpdate();
            rs.next()
            }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
"UPDATE individuen set Partner = " + partnerID + " WHERE ID IN (1,2,3,4)"
int idColumn = rs.findColumn("ID");
int partnerID = rs.getInt(idColumn);
PreparedStatement person = DBController.connection.prepareStatement(
    "UPDATE individuen set Partner = ? WHERE ID = ?"
);
int idColumn = rs.findColumn("ID");
for (Integer key : keys) {
    if (!rs.next()) {
        // Make sure that we do not read a missing parent ID.
        // This should never happen, as long as rs has enough rows.
        break;
    }
    person.setInt(1, rs.getInt(idColumn));
    person.setInt(2, key);
    person.addBatch();
}
person.executeBatch();
public static void partnerStmt(ArrayList<Integer> keys, int age, int sex, int range){
    int amount = keys.size();
    int aageMin = alter - range;
    int ageMax = alter + range;
    int[][] storeArr = new int[amount][2];

    if (ageMin < 18)
        ageMin = 18;

    String select = "SELECT ID FROM individuen WHERE Age BETWEEN " 
            + ageMin +" AND "+ ageMax + " AND Family IS 2 AND Partner IS NULL AND Sex "
            + "IS " + sex + " ORDER BY RANDOM() LIMIT " +amount+";";

    try {
        Statement stmt = DBController.connection.createStatement();
        ResultSet rs = stmt.executeQuery(select);

        for (int i = 0; i < anzahl; i++){
            int idColumn = rs.findColumn("ID");
            int idPartner = rs.getInt(idColumn);
            storeArr[i][0] = keys.get(i);
            storeArr[i][1] = idPartner;
            rs.next();
        }

        PreparedStatement person = DBController.connection.prepareStatement(
            "UPDATE individuen set Partner = ? WHERE ID = ?");

        for (int i = 0; i < amount; i++){
            person.setInt(1, storeArr[i][0]);
            person.setInt(2, storeArr[i][1]);
            person.addBatch();
        }

        person.executeBatch();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}