Duda en paso de conexion por parametro
Buenas, tengo una duda técnica con un tema de paso de parámetros. El caso es que yo tengo un método al que le paso como parámetro una conexion con base de datos, del estilo de
public void ejecutarSelect(Connection con, String selec). A este método le llega la conexión abierta, y lo único que hace es ejecutar la select. La conexión se cierra fuera del método.
Aquà llega mi duda. En java cualquier parámetro que se pasa a un método es por valor, es decir, al comienzo del método se crea una copia de las variables pasadas por parámetro y al final del método las destruye. Pero en el caso de la conexión, ¿copia el puntero a la conexión o realmente "clona" la conexión con base de datos? Me interesa saberlo, por que si fuese de la segunda manera (clonación) simpre me estarÃa dejando conexÃones abiertas.
A ver si alguien me puede ayudar. Un saludo.
public void ejecutarSelect(Connection con, String selec). A este método le llega la conexión abierta, y lo único que hace es ejecutar la select. La conexión se cierra fuera del método.
Aquà llega mi duda. En java cualquier parámetro que se pasa a un método es por valor, es decir, al comienzo del método se crea una copia de las variables pasadas por parámetro y al final del método las destruye. Pero en el caso de la conexión, ¿copia el puntero a la conexión o realmente "clona" la conexión con base de datos? Me interesa saberlo, por que si fuese de la segunda manera (clonación) simpre me estarÃa dejando conexÃones abiertas.
A ver si alguien me puede ayudar. Un saludo.
Hola, LuiX:
Lo de que en java todos los parámetros se pasan por valor no es del todo correcto.
Si el parámetro que estás pasando es de un tipo primitivo, se pasa por valor.
En cambio, si se trata de un objeto, se pasa por referencia.
En tu caso particular, no tendrÃas problemas al hacerlo como lo estás haciendo, ya que al pasar el objeto Connection, el método utilizarÃa una referencia a ese objeto, que luego cerrarás fuera del método, pero no te estarÃas dejando conexiones abiertas.
Un saludo.
Lo de que en java todos los parámetros se pasan por valor no es del todo correcto.
Si el parámetro que estás pasando es de un tipo primitivo, se pasa por valor.
En cambio, si se trata de un objeto, se pasa por referencia.
En tu caso particular, no tendrÃas problemas al hacerlo como lo estás haciendo, ya que al pasar el objeto Connection, el método utilizarÃa una referencia a ese objeto, que luego cerrarás fuera del método, pero no te estarÃas dejando conexiones abiertas.
Un saludo.