Buenas gente, ya termine mis examenes y estoy tratando de ponerme al dia con mis blogs. Hoy quiero explicarles algo muy simple y es como conectar MySQL con Java y realizar las operaciones basicas (borrar,insertar,actualizar y consultar). Esto lo haremos solo en modo consola, no hare una interfaz grafica ya que en primer lugar jamas explique en este blog como hacer un interfaz grafica.

Lo que vamos a hacer sera de gran interes tambien para todos aquellos que estaban o estan siguiendo mi tutorial de javafx, que se quedo en la parte 5, pues pronto explicare como conectar una base de datos MySQL con JavaFX.

Bueno empecemos, primero he de aclarar que estoy usando el IDE NetBeans 6.7.1 y supondre que todos lo usan, si usan Eclipse deberan agregar el driver MySQL- Connector a las librerias de su proyecto. En cambio si usan NetBeans este ya viene listo para usar.

Abrimos NetBeans y creamos un nuevo proyecto (File->New Proyect->Java->Java aplication), y le ponemos un nombre cualquiera, en mi caso se llama “ejemplo”.

Ahora antes de empezar debemos agregar el Driver MySQL-Connector a las librerias del proyecto, esto se hace super sencillo. El proyecto recien creado en NetBeans se ve asi:

screenshot_001

Ahora solo tienen que hacer boton derecho en Libraries->Add Library y les aparecera una venta como esta:

screenshot_007

Busquen el que se llama MySQL JDBC Driver y hagan click en Add Library. Bien ahora volvamos a nuestro Main.java, sera necesario que hagamos unos imports.


Les voy a copiar todo el codigo he intetare explicarselos mas abajo:

[java highlight=“18,19,34”] import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException;

public class Main {

static String bd = “javafx”; static String login = “root”; static String password = “songoku”; static String url = “jdbc:mysql://localhost/"+bd;

public static void main(String[] args) { //Primera parte - conexion a la base de datos Connection conn = null; try { Class.forName(“com.mysql.jdbc.Connection”); conn = (Connection) DriverManager.getConnection(url, login, password); if (conn != null) { System.out.println(“Conexión a base de datos “+url+” … Ok”); } } catch(SQLException ex) { System.out.println(“Hubo un problema al intentar conectarse con la base de datos “+url); } catch(ClassNotFoundException ex) { System.out.println(ex); }

//Segunda parte - iteraccion con la base de datos Statement s; try { s =(Statement) conn.createStatement(); //aqui la sentencia con codigo SQL { System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getString(3)+ " " + rs.getString(4)); } } catch (SQLException ex) { System.out.println(“Hubo un problema al intentar obetener lo datos”); }

}

} [/java]


Enlace para descargar la clase completa. Como veran todo esta dentro de unos try-catch , esto es asi porque java obliga a que sea asi para evitar errores. De todas maneras supongo que todo el mundo sabe como funciona el try-catch. Ademas quiero que vean lo facil que es conectar Java con MySQL pues las unicas 3 lineas que debemos recordar son las que estan resaltadas.

La sentencia Class.forName nos sirve para asegurarnos que el Driver se inicializa y se registra, es similar a instanciarlo con un new, pero hacerlo con forName tiene una ventaja y es que solo usaremos un Driver si lo usamos, si no lo usamos pues no hara falta tener el .jar con el Driver. Les sera util cuando trabajen con distintos motores de base de datos, por ahora no le den bolilla, es asi y punto.

Como el Driver ya esta cargado ahora solo pediremos una conexion a la clase DriverManager mediante su metodo getConnection. El metodo getConection puede recibir varios parametros pero estos 3 son sufientes para nuestro ejemplo: url, login y password. Yo los puse como variables, estas variables deben ser Strings. Veran que la variable url es una concatenacion de una cadena que es siempre la misma mas el nombre de la base de datos. En esta cadena se podria poner tambien el numero de puesto por el cual conectar pero no creo que necesiten cambiar eso :P

La linea if (conn != null) solo la usamos para que muestre un mensaje de que la conexion a sido establecida correctamente, eso sucedera siempre que la variable conn sea distinto de null. Bueno luego solo hay un par de catch que todo el mundo sabe lo que hacen.

Eso es todo en cuanto a la conexion, ejecuten y veran el cartel de que la conexion se establece correctamente. Ahora vamos a ver como ejecutar sentencias SQL basicas.

Usaremos la clase Statement de java para enviar consultas. Statement tiene 2 metodos interesantes: executeUpdate y executeQuery. El primero nos permitira enviar consultas que modifiquen la base de datos y el segundo nos permitira hacer consultas. Su uso es muy sencillo pero otra vez java nos pide que todo esto este dentro de un try-catch.

En la linea 35 es donde va a ir la sentencia a ejecutar, si vamos a realizar un executeQuery vamos a guardar el resultado en una variable tipo ResultSet que luego nos servira para recorrer los resultados.

Aqui viene un problema, no con java, sino con mi blog, no me dejaba escribir el codigo, luego quise poner una imagen y tampoco me dejo, luego quise poner un video, pero ni asi. Para ver las sentencias basicas van a tener que bajar la clase completa y fijarse alli. En enlace esta mas arriba.

Una vez que terminemos de hacer lo que deseamos hacer tenemos que cerrar todas las conexiones que abrimos.

Eso lo hacemos facil asi: [java] conn.close(); [/java]

Eso es todo, tal vez lo vean un poco largo pero no lo es realmente, una vez que se lo aprendan es super sencillo. Ademas recuerden que esto les servira a los que estan siguiendo el tutorial de JavaFX. Cualquier cosa me preguntan :penguin: