执行更新中的循环(java应用程序,oracle)
晚安,伙计们。 我正在做一个java小程序来处理这个使用数据库的程序,在插入正确的时候,问题在于更新和删除executeUpdate循环。 例如,如果我尝试通过java插入以下代码,则不会。现在cmd会执行更新中的循环(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
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(查询)之前的三行中,您正在使用删除查询覆盖所有动态查询算法。它应该是这样工作的还是你只是在测试它?