Bem, eu tenho o seguinte código abaixo.
private static String conexao = "jdbc:odbc:xpm_db";
private static String login = "root";
private static String senha = "ghgh";
private static String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private static void insereDB(String query) {
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(conexao, login, senha);
Statement stmt = con.createStatement();
stmt.execute(query);
stmt.close();
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
public static void insereRequisicao(JTable tabela, int BDU, int nDaReq) {
String material = "";
int qtd = 0;
for(int i = 1; i < tabela.getRowCount(); i++) {
for(int j = 0; j < tabela.getColumnCount(); j++) {
if(j == 1)
material = tabela.getValueAt(i, j).toString();
if(j == 2)
qtd = Integer.parseInt(tabela.getValueAt(i, j).toString());
}
}
insereDB("INSERT INTO movimentorequisicao (nDaReq, material, qtd, bdu) VALUES (" + nDaReq + ", '" + material + "', " + qtd + ", " + BDU + ");");
}
Pelo que viram, eu recebo uma JTable na função insereRequisicao, então eu pego os valores que quero e guardo para usar numa query que envio para a insereDB.
O Problema é que se essa JTable vier com mais de uma linha para inserir no for, a insereDB dá problema. O Erro é: java.sql.SQLException: General error
Ou seja, só vai a primeira linha da JTable. Se tiver 3 linhas, só vai a 1 e dá dois erros: java.sql.SQLException: General error
Eu verifiquei na internet que pode ser porque o java não fecha a conexão com o banco de dados a tempo. O Q acham?
Eu já fiz os testes, e as querys estão corretas. (Fiz um Syso... das queries e roda lindo);