Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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应用程序,oracle)_Java_Oracle - Fatal编程技术网

执行更新中的循环(java应用程序,oracle)

执行更新中的循环(java应用程序,oracle),java,oracle,Java,Oracle,晚安,伙计们。 我正在做一个java小程序来处理这个使用数据库的程序,在插入正确的时候,问题在于更新和删除executeUpdate循环。 例如,如果我尝试通过java插入以下代码,则不会。现在cmd会 UPDATE CIDADE SET NOME_CIDADE = 'Alegre', UF = 'ES' WHERE CODCIDADE = '4' 我的类与数据库的连接如下: package gbd1.util.conexoes; import java.sql.Connection; i

晚安,伙计们。 我正在做一个java小程序来处理这个使用数据库的程序,在插入正确的时候,问题在于更新和删除executeUpdate循环。 例如,如果我尝试通过java插入以下代码,则不会。现在cmd会

UPDATE CIDADE SET  NOME_CIDADE = 'Alegre', UF = 'ES' WHERE CODCIDADE = '4'
我的类与数据库的连接如下:

package gbd1.util.conexoes;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConexaoOracle implements IConexoes {

    private Connection con;
    private String nomeUsuario;
    private String senha;
    private String database;
    private  PreparedStatement ps = null;
    private Statement stat = null;

    @Override
    public Connection IniciarConexao(String database, String usuario, String senha) throws SQLException {

        this.database = database;
        this.nomeUsuario = usuario;
        this.senha = senha;
        try {
            Class.forName("oracle.jdbc.OracleDriver");

            con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "Paula", "2011204415");
            stat = con.createStatement();
            return con;
        } catch (ClassNotFoundException e) {
            throw new SQLException(e.getMessage());
        }
    }

    public ResultSet querySelect(String sql) throws SQLException {
        ResultSet rs = null;
        rs = stat.executeQuery(sql);
        return rs;
    }

    public int updadeBanco(String sql) throws SQLException { 
        stat = con.createStatement();
        int i = stat.executeUpdate(sql);

        return i;
    }
}
这是clase调用executeUpdate的地方

public class RecuperacaoDados {
    private static IConexoes conexao;

    public static void recuperar(String sgbd, String nomeBd, String nomeUsuario, String senha) throws Exception{

        //conexao = CriarConexao.create(sgbd);
        conexao = new ConexaoOracle();
        conexao.IniciarConexao("", "", "");
        //---------------------------------------
        LogsCollection logs = LogsCollection.getLogs(null);
        String query;
        String atri;
        String valu;
        int i, j=0;
        for (Log l:logs.getLogs()){
            query ="";
            atri="";
            valu="";
            j=0;
            System.out.println(l.getOperacao());
            if(l.getOperacao().equalsIgnoreCase("INSERT")){
                query= "INSERT INTO "+ l.getNomeTabela();
                i = l.getAtributos().size();
                for (Atributo at: l.getAtributos()){
                    if( (j!=0)){
                        atri=atri+", ";
                        valu=valu+", ";
                    }
                    atri=atri+at.getNomeAtributo();
                    valu=valu+"'"+at.getValorAtributo()+"'";
                    j++;
                }
                query = query + " ("+ atri + ") VALUES ("+valu+ ")";
                System.out.println(query);
                conexao.updadeBanco(query);
            }
            else if(l.getOperacao().equalsIgnoreCase("UPDATE")){
                query= "UPDATE "+ l.getNomeTabela()+ " SET " ;
                i = l.getAtributos().size();
                for (Atributo at: l.getAtributos()){
                    if( (j!=0)){
                        query=query+ ", ";
                    }
                    query = query+ at.getNomeAtributo()+" = '"+ at.getValorAtributo()+"'";
                    j++;
                }
                query = query + " WHERE ";
                j=0;
                for ( ChavePrimaria at: l.getPks()){
                    if( (j!=0)){
                        query=query+ " AND ";
                    }
                    query = query+ at.getNome()+" = "+ at.getValor()+"";
                    //  atri=atri+at.getNomeAtributo();
                    // valu=valu+"'"+at.getValorAtributo()+"'";
                    j++;
                }

                // query = query + " ("+ atri + ") VALUES ("+valu+ ")";

                query = "DELETE CIDADE  WHERE CODCIDADE = 2";
                System.out.println(query);
                conexao.updadeBanco(query);
            }
        }
    } 
}
我将查询作为“默认”进行测试

有人能帮我吗

更新:
我发现驱动器上有错误。

您的错误是什么?或者更新根本不起作用?根本不做任何事情,循环,不通知我任何错误。循环?你怎么知道它在循环?你在小程序控制台中看到什么了吗?我想这是一个循环,为什么不什么都不做呢。好的。您正在执行删除查询,而不是更新。不是吗?在conexao.updadeBanco(查询)之前的三行中,您正在使用删除查询覆盖所有动态查询算法。它应该是这样工作的还是你只是在测试它?