Bueno hoy pretendo indicar como conectarce a una DB desde Java, todos los import que necesitamos para manejar la base de datos están en el pauqte java.sql.* que ya trae integrado java en sus librerias. Puesto que casi todas los métodos relativos a base de datos pueden lanzar la excepción SQLException, meteremos toda instruccion que requiera hacer uso del Driver de MySql en un try-catch.
Además, 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).
Iniciamos:
1) Instalar el DRIVER…
Lo primero que tenemos que hacer es asegurarnos que el Driver se carga en memoria de java, para ello:
public void CargarDriver(){
try{
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
//esto es para asegurarnos que tod ba bien
System.out.println(“Se ha cargado el Driver”);
}catch(Exception e){
//imprimimos la exceptionque se nos presenta
e.printStackTrace();
}
}
si todo ba bien podemos seguir con el segundo paso….
2)Conectar a una Base de Datos….
Antes que nada debemos tener el servidor de MySQL iniciado. Si durante la instalación dejaron esa opción como estaba, cada vez que encendamos el ordenador, se arrancará el servidor de MySQL, por lo que no tenemos que preocuparnos por ello.
Si no es asi, nos bamos a Mi PC, click derecho, buscamos la opción Administrar, beremos una ventana y en la parte izquierda un arbol de opciones, nos ubicamos sobre Servicios y Aplicaciones, se despliega el arbol, seleccionamos Servicios, Buscamos en la parte derecha Mysql lo seleccionamos y en la parte superior buscamos un boton igual al de Play de un reproductor, lo clickeamos y listo el servidor Mysql se inicia.
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.
En caso que durante la instalación le hemos fijado otro puerto diferente del 3306 debemos trabajar con ese puerto desde Java.
Para establecer la conexion, la clase DriverManager tiene métodos getConnection(). Usaremos uno de ellos
// Establecemos la conexión con la base de datos.
Connection conexion = DriverManager.getConnection (“jdbc:mysql://localhost/prueba”,”root”, “la_clave”);
El primer parámetro del método 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 máquina 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.
Los otros dos parámetros 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.
Si todo va bien, en conexion tendremos nuestra conexión a la base de datos.
Esta conexión 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 conexión, 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 opción es que cada hilo cree su propia conexión.
public void ConectarBase(String BasedeDatos){
try{
conexion=DriverManager.getConnection(“jdbc:mysql://localhost:3307/matriculacion”,”root”,”4886″);
accion=conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println(“Se conectado a la base de datos”);
}catch (SQLException e) {
System.out.println(“No Se pudo conectar a la base de datos”);
}
}
3) Realizar una consulta…..
Para realizar cualquier acción 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 conexión. 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 excepción que hay que capturar.
El Statement obtenido tiene un método executeQuery(). Este método sirve para realizar una consulta a base de datos.
- El parámetro que se pasa en un String en el que está la consulta en lenguaje SQL. No hace 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.
- El resultado nos lo devuelve el método como un ResultSet. Este ResultSet no es más 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 según se van pidiendo. Por ello, el método executeQuery() puede tardar poco, pero el recorrer los elementos del ResultSet no es tan rápido. De esta forma se evita que una consulta que dé muchos resultados tarde mucho tiempo y llene la memoria del programa java.