>
Rafael
estou testando uma conexao, porém ao tentar reutiliza-la ocorre o seguinte erro
"No operations allowed after connection closed. "
percebi que quando dou um close, a conexao fecha mas não deixa de ser nula, dando a impressao que existe mas esta fechada,
todo código de teste segue abaixo, o erro ocorre na linha do código (pstm2 = c.prepareStatement(SQL))
Obrigado
package br.com.rlsystem.DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class conexao {
static Connection conn = null;
static final String url = "jdbc:mysql://localhost/contas_pagar";
static final String user = "root", pass = "marcelo";
public static Connection getConexao() throws SQLException, ClassNotFoundException {
try {
if (conn == null) {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pass);
}
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
try {
Connection c = conexao.getConexao();
String SQL = "select * from contaspagar";
PreparedStatement pstm = null;
pstm = c.prepareStatement(SQL);
ResultSet rs = pstm.executeQuery();
rs.close();
pstm.close();
c.close();
//** aqui reabro a conexao **
c = conexao.getConexao();
SQL = "select * from fornecedor";
PreparedStatement pstm2 = null;
pstm2 = c.prepareStatement(SQL); //********** o erro é nessa linha
ResultSet rs2 = pstm.executeQuery();
rs2.close();
pstm2.close();
c.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Errata
na linha:
ResultSet rs2 = pstm.executeQuery(); // não é pstm
o correto é:
ResultSet rs2 = pstm2.executeQuery();
obrigado