Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/09/2011, 10:05
-thor-
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Duda sobre Sql+java

Código:
Si, se recomienda siempre cerrar
 las conexiones y transacciones, 
mas que nada por que si se usa mucho
 la clase donde tienes la conexion sin cerrar, 
puede darte problemas de exceso de conexiones 
abiertas,
 y tendrias que parar tu aplicacion y volverla a iniciar.
Gracias por la respuesta.
Al darme exceso de conexiones quiere
decir que mi aplicacion quedaria saturada,
por lo tanto se volveria lenta y podria bloquearse.
¿estoy correcto?



Código:
Igualmente tendria que ser un uso bastante 
continuado...
porque las conexiones llevan implicitas un timeout,
 en el que si la conexion no tiene transacciones, 
la base de datos la cierra automaticamente.
 Pero por seguridad y por evitar futuros problemas, 
se aconseja siempre cerrarlas.

Código:
Gestión automática de recursos

Un "recurso" es un objeto que tiene que cerrarse manualmente,
 como ser java.io.InputStream, OutputStream, Reader, Writer, Formatter;
java.nio.Channel;java.net.socket; 
java.sql.Connection, Statement, ResultSet entre otros.
 Estos recursos se suelen abrir en un bloque try 
y cerrar en un finally.

La gestión automática de rcursos es 
una forma especial del operador try en 
donde se declaran uno o más recursos. 
El alcance de estos recursos está limitado al bloque. 
Cuando el bloque termina, sea de forma normal o
 abrupta, todos los recursos declarados se cierran 
automáticamente.

La principal ventaja es que se elimina la necesidad 
del cierre manual, y los posibles errores que eso provoca.
 Además, se "evita" la segunda excepción (la del close()), 
dejando siempre la excepción del bloque que suele ser más interesante.

Un ejemplo de uso sería:
Como vemos, el bloque try() declara un recurso,
 el luego es utilizado dentro del bloque. Al finalizar, 
se cerrará automáticamente. 
También es posible declarar más de un recurso: 

try 
(InputStream 
in = 
new FileInputStream(src);
     OutputStream out =
 new FileOutputStream(dest)) 
{
 
            byte[] buf 
= new byte[8192];
            int n;
 while ((n = in.read(buf)) >= 0)
                out.write(buf, 0, n);
}

http://www.dosideas.com/noticias/jav...del-jdk-7.html 
¿Crees que esta nueva caracteristica del jdk7 sea más segura? ya que te evita los cierres manuales, porque declaras los recursos en el try.