Una vez instalado MySQL, descargado el driver para java de MySQL y con una base de datos
y una tabla creada en MySQL, vamos a hacer un pequeo programa en java que nos permita
conectarnos a la base de datos MySQL y consultar la tabla que hemos creado.
Instalar el Driver
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, meteremos todo nuestro programa en un try-catch.
Adems, necesitamos la clase org.gjt.mm.mysql.Driver que viene con el driver 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.7-bin.jar) o la
versin ms moderna y compatible con la versin de nuestro servidor de MySQL.
Lo primero que tenemos que hacer es asegurarnos que el Driver se inicializa y se registra,
para ello
try
{
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e)
{
e.printStackTrace();
}
Debemos tener el servidor de MySQL arrancado. Si hemos instalado y dejado esa opcin
como estaba, cada vez que encendamos el ordenador, se arrancar el servidor de MySQL,
por lo que no tenemos que preocuparnos por ello.
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 quiere consultar la tabla de base de datos que hemos creado, deber
conectarse a este servidor.
El primer parmetro del mtodo getConnection() es un String que contiene la url de la base
de datos:
jdb:mysql porque estamos utilizando un driver jdbc para MySQL, que es el que nos
hemos bajado.
localhost porque el servidor de base de datos, en mi caso, est en el mismo
ordenador en el que voy a correr el prorama 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 se quiere uno conectar.
Es el nombre que pusimos cuando desde SQL hicimos create database prueba;
Los otros dos 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 la
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 cachos de mensaje destinados al otro hilo. 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.
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:
// Preparamos la consulta
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
La parte de createStatement() no tiene ning secreto, salvo que puede lanzar una excepcin
que hay que capturar.
El Statement obtenido tiene un mtodo executeQuery(). Este mtodo sirve para realizar una
consulta a base de datos.
Es responsabilidad nuestra saber qu tipo de dato hay en cada columna, aunque si nos
equivocamos y RecordSet es capaz de hacer la conversin, la har por nosotros. Por
ejemplo, en cualquiera de los campos anteriores podemos pedir un getString() y nos
devolveran los nmeros como String y la fecha como String.
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.
Fuente: http://www.chuidiang.org/java/mysql/EjemploJava.php