Error al cerrar conexion MySQL - com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException

tema enviado por Bbk en Java
tema iniciado el 07/04/2008

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