Sei sulla pagina 1di 9

JDBC- Conexin a una Base de Datos para Insertar, Consultar, Modificar y Eliminar

Registros
En nuestro programa java, todos los import que necesitamos para manejar la base de
datos estn en java.sql.*. Puesto que casi todas los mtodos relativos a base de datos
pueden lanzar la excepcin SQLException, inicialmente todo nuestro programa estar en
u bloque try-catch.
Adems, necesitamos la clase org.gjt.mm.mysql.Driver que viene con el controlador de
MySQL. Por ello, en nuestro CLASSPATH o incluido en nuestro proyecto con nuestro IDE
favorito, debemos incluir el jar que contiene el driver MySQL (mysql-connector java-3.1.7bin.jar) que sea compatible con la versin de nuestro gestor de base de datos MySQL.
Lo primero que tenemos que hacer es asegurarnos que el Driver se inicializa y se registra,
para ello

Establecer la conexin con la base de datos


Debemos tener el servidor de MySQL en estado activo. El servidor de MySQL abre por
defecto el puerto 3306 para aceptar conexiones de posibles clientes, de programas que
quieran conectarse y acceder a la base de datos. Nuestro programa java, si requiere
consultar la tabla de base de datos que hemos creado, deber conectarse a este servidor.
Para establecer la conexin, la clase DriverManager tiene mtodos getConnection().
Usaremos uno de ellos

El primer parmetro del mtodo getConnection() es un String que contiene la url de la


base de datos y contiene las siguientes instancias:
jdbc:mysql: Se referencia de esta forma porque estamos utilizando un driver jdbc para
MySQL.

Localhost: El servidor de base de datos, en nuestro caso, est en el mismo ordenador en


el que vamos a correr el programa java. Aqu puede ponerse una IP o un nombre de
mquina que est en la red.
Prueba: es el nombre de la base de datos que he creado dentro de mysql. Se debe poner
la base de datos dentro del servidor de MySQL a la que nos queramos conectar.
Los otros parmetros son dos String. Corresponden al nombre de usuario y password
para acceder a la base de datos. Al instalar MySQL se crea el usuario root y se pide el
password para l. Como no hemos creado otros usuarios, usaremos este mismo.
Esta conexin es en realidad un socket entre java y la base de datos, aunque para
nosotros es transparente. Lo que s es importante, es saber que si varios hilos comparten
esta conexin, deben usarla sincronizadamente. Si no se hace as, los mensajes que van
por el socket se pueden entremezclar y los hilos pueden leer mensajes destinados a
otros hilos. Otra opcin es que cada hilo cree su propia conexin. Finalmente, la mejor
opcin de todas si nuestra aplicacin va a tener varios hilos intentando acceder a la base
de datos, es usar un Pool de conexiones.
Realizar una Consulta
Para realizar cualquier accin sobre la base de datos (consulta, insertar nuevos registros,
modificar los existentes o borrar), necesitamos una clase Statement. Para obtenerla, se le
pide dicha clase a la conexin. La forma de hacerlo, para una consulta, es la siguiente:

La parte de createStatement() no tiene ningn secreto, salvo que puede lanzar una
excepcin que haya que capturar.
El Statement obtenido tiene un mtodo executeQuery(). Este mtodo sirve para realizar
una consulta a base de datos y consta de las siguientes caractersticas:

falta terminarlo con punto y coma. En nuestro caso "select * from persona". siendo
persona el nombre que hemos puesto a la tabla en la base de datos.
ado lo devuelve el mtodo como un ResultSet. Este ResultSet no es ms que
una clase java similar a una lista en la que est el resultado de la consulta. Cada
elemento de la lista es uno de los registros de la base de datos. En realidad, ResulSet no
contiene todos los datos, sino que los va consiguiendo de la base de datos segn se van
pidiendo. Por ello, el mtodo executeQuery() puede tardar poco, pero el recorrer los

elementos del ResultSet no es tan rpido. De esta forma se evita que una consulta que d
muchos resultados tarde mucho tiempo y llene la memoria del programa java.
Leer los resultados
El ResultSet contiene los registros ledos de la base de datos. Inicialmente, tal cual nos lo
devuelve el Statement.executeQuery(), tiene internamente un "puntero" apuntando justo
delante del primer registro. El mtodo next() del ResultSet hace que dicho puntero avance
al siguiente registro, en este caso, al primero. Si lo consigue, el mtodo next() devuelve
true. Si no lo consigue (no hay siguiente registro que leer), devuelve false.
Por tanto, una forma de ir leyendo los registros es por medio de un ciclo while.

Una vez que el "puntero" este direccionando un registro, los mtodos getInt(), getString(),
getDate(), etc nos van devolviendo los valores de los campos de dicho registro. Podemos
pasar a estos mtodos un ndice (que comienza en 1) para indicar qu columna de la
tabla de base de datos deseamos. Tambin podemos usar un String con el nombre de la
columna (tal cual est en la tabla de base de datos).
Es responsabilidad nuestra saber qu tipo de dato hay en cada columna, aunque si nos
equivocamos el RecordSet es capaz de hacer la conversin, Por ejemplo, en cualquiera
de los campos anteriores podemos pedir un getString() y nos devolver los nmeros como
String y la fecha como String.
Tambin podemos usar getObject(), y el RecordSet nos devolver el Object ms
adecuado para el tipo de campo que pedimos.
Cerrar la Conexin
Una vez que terminamos de usar la conexin, se debera cerrar, o bien terminar el
programa, con lo que se cierra automticamente.

Ejemplo de Conexin a Base de Datos para Insertar y Consultar Registros


Inicialmente se deben implementar las liberaras asociadas a las interfaces grficas,
manejo de eventos y sentencias sql.

Se debe crear el constructor de la clase en el que se referencia el ContentPane y sus


elementos asociados con sus respectivas posiciones.

Se crea el botn para insertar y se llama el evento de dicho botn para ejecutar la
operacin de Insercin de registros

Se crea el botn para consultar y se llama el evento de dicho botn para ejecutar la
operacin de consulta de registros

Se carga el mtodo para verificar la operacin del driver JDBC para conectarnos a la base
de datos

Se crea el mtodo main para hacer visible la clase formulario, apartir de instanciar dicha
clase

Ejemplo de Base de Datos para Modificar y Eliminar


Inicialmente se deben implementar las liberaras asociadas a las interfaces grficas,
manejo de eventos y sentencias sql.

Se debe crear el constructor de la clase en el que se referencia el ContentPane y sus


elementos asociados con sus respectivas posiciones.

Se crea el botn para consultar y se llama el evento de dicho botn para ejecutar la
operacin de consulta de registros

Se hace la operacin de eliminacin de registros

Se hace la operacin para modificar registros

Se crea el mtodo para cargar el driver

Se crea el mtodo main para hacer visible la clase operaciones, apartir de instanciar dicha
clase

Potrebbero piacerti anche