Duda Java

ReBeNTuk0

Buenas! Estoy haciendo un programa para conectarme con una base de datos en Oracle. El programa tiene un menu desplegable con dos partes, una para conectar y otra para ejecutar la sentencia SQL y hacer la consulta. Aqui os dejo la imagen:

http://img145.imageshack.us/my.php?image=41962554qc7.jpg

Al darle a Conectar BD, creo un objeto de la clase y lo hago visible para que me muestre la ventana e introduzco los datos.

Al darle a Conectar BD nos sale esta pantalla:

http://img176.imageshack.us/my.php?image=55159202bc5.jpg

Aqui ponemos los datos y le damos a conectar y todo va bien. El problema es que cuando cierro la ventana y le doy al apartado del menu Sentencia SQL ya la conexion no esta disponible y no puedo ejecutar las sentencias SQL. De la unica forma que puedo hacerlo ahora mismo es creando las variables con los datos en el codigo para conectarme y no usar el apartado de Conectar BD. De esta forma si puedo realizar la consulta:

http://img509.imageshack.us/my.php?image=22590989up4.jpg

Otra manera que me funciona es si pongo los datos de la conexion en la misma ventana donde puedo ejecutar las sentencias SQL. Asi simplemente recojo los valores de las cajas de texto y se las paso al constructor de la clase para iniciar la conexion con esos datos. En cambio, si lo tengo que hacer de una clase a otra no me funciona :S

Me gustaria que pudiera darle a conectar y al cerrar la ventana y abri la de la sentencia SQL no se me fuera la conexion con la BD o si no, coger los datos de la conexion introducida en esa ventana y pasarlo a la otra. No se si me he explicado bien :S. Gracias.

ReMaTxEs

Por lo que cuentas estás haciendo todo dentro de la clase de la propia ventanita y no debería ser así, separa la lógica de negocio (Crear la conexión, ejecutar la sentencia...) De la presentación (Mostrar la ventana, los resultados de la sentencia)

Create una variables estática para la conexión,y al darle a conectar que queden almacenadas, luego cada vez que lo necesites instancias una clase que inicialize la conexión, haces la consulta y luego cieras la conexión. O tb puedes crear directaetne com etática la calse que inicialize la conexión y la llamas según la necesites, en este caso asegurate de que después la cierras al salir del programa.

PD: Me explico como el culo, lo se.

ReBeNTuk0

Ha sido suficiente tu explicacion y con la ayuda de mi profesor he enfocado el tema de otra manera mas facil y que me pueda funcionar (o eso creo). Muchas gracias por tu respuesta!

Usuarios habituales

  • ReBeNTuk0
  • ReMaTxEs