Senhores, preciso de uma ajuda, pois estou dando meus primeiros passos no Java e escolhi como projeto inicial fazer um Parser (arquivo de Log para banco de dados). A performance está ótima, quase 4 mil linhas/seg, porém ao modificar a estrutura do meu código estou tendo problema, acredito que para os mais antigos seja algo fácil de se resolver.
Criei um trecho de código para que os amigos possam ver o q pode estar acontecendo, o código é semelhante a este abaixo:
import java.sql.ResultSet;
import java.sql.SQLException;
public class Teste {
private static final Postgres psql = new Postgres("10.254.254.245");
public static void main(String[] args) {
Teste2();
}
public static void Teste2() {
ResultSet rset;
try {
rset = psql.stmt.executeQuery("SELECT * FROM arquivo");
while (rset.next()) {
System.out.println("=> " + rset.getString(1));
System.out.println("=> " + rset.getString("arquivo_nome"));
if ((rset.getString("servidor")).equals("1")) {
System.out.println("=> " + Teste3(Integer.parseInt(rset.getString("arquivo_status"))));
}
Teste4(rset.getString("arquivo_nome"));
}
rset.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void Teste4(String s) {
try {
psql.stmt.addBatch("INSERT INTO arquivo (arquivo_nome) VALUES ('"+s+"')");
psql.stmt.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static String Teste3(int i) {
String msg = null;
switch (i) {
case 1:
msg = "OK";
break;
case 2:
msg = "ERRO";
break;
}
return msg;
}
}
Segue o erro:
org.postgresql.util.PSQLException: Este ResultSet está fechado.
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2439)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1813)
at Teste.Teste2(Teste.java:12)
at Teste.main(Teste.java:6)
Ahh, irei anexar o arquivo tb.
Muito obrigado e abraços