Buenas, tengo un problemilla que no se muy bien por donde abordar y no se si alguien me podrá ayudar con él, os cuento. Estoy haciendo una aplicación con conexion a una base de datos MySQL. Para hacer la conexion tengo el siguiente método:
public Connection getConnection(){
if (miConexion==null)
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
miConexion=DriverManager.getConnection("jdbc:mysql://localhost/Censo?user=root&password=usuroot");
}catch(Exception e){
System.out.println("Excepcion solicitando conexion: "+e);
}
return miConexion;
}
}
y tengo un método en otra clase para hacer una simple consulta:
public void consulta() throws SQLException{
Connection conexion=null;
Statement sentencia=null;
ResultSet res = null;
conexion=conexionDB.getConnection();
String select = "SELECT * FROM Censo";
sentencia = conexion.createStatement();
try{
//sentencia = conexion.createStatement();
res = sentencia.executeQuery(select);
while(res.next()){
System.out.println(res.getString("DNI")+", "+res.getString("NOMBRE")+ ", "+res.getDate("FECNAC")+ ", "+res.getString("DIR")+ ", "+res.getInt("TFNO"));
}
sentencia.close();
conexion.close();
//conexion=null;
conexionDB.closeConnection(conexion);
}catch (SQLException e){
System.out.println("Se ha producido un error al hacer la consulta en la BD");
System.out.println(e);
}
}
Mi problema es que si hago la consulta por primera vez, esta se realiza correctamente pero si ejecuto la consulta por segunda vez en la misma sesion y cierro la conexion despues de hacer la consulta me salta la siguiente excepción:
Exception in thread "main" com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.checkClosed(Connection.java:1932)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3121)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3103)
at com.atrium.master.modulo3.Ejercicio1.CensoDAO.consulta(CensoDAO.java:92)
at com.atrium.master.modulo3.Ejercicio1.GestionCenso.main(GestionCenso.java:122)
He intentado buscar información a cerca de esta excepcion pero no he encontrado nada. No se si el problema es de mi código, de java o de MySQL.
¿Alguien se ha encontrado con este problema alguna vez? ¿Me podeis ayudar con esto?
Muchas gracias
BBk