JAVA y MySQL

Hola a Todos, como lo indico en el título de mi entrada, voy a mostrarles a quienes estén interesados y no lo sepan, como conectar una aplicación JAVA, de consola en este caso, y una Base de Datos en MySql, para consultar e insertar datos.

Asumiré que ya tienes conocimientos en MySql y sabes como crear una base de datos y una tabla, la base de datos que vamos a usar se llama arquitecto y la tabla para este ejemplo se llama Soluciones y tiene 2 campos id_solucion (varchar(10)) y descripcion (varchar(20)).

Lo primero que necesitamos es el driver de Mysql para conectarnos a ese motor, este driver se puede descargar directamente de la página de Mysql en el siguiente link:http://www.mysql.com/downloads/connector/j/

Se descomprime este conector y el archivo .jar, en mi caso, mysql-connector-java-5.1.12-bin.jar se debe colocar en la carpeta JAVA_HOME(directorio instalación de Java)/jre/lib/ext/ para que quede de fácil acceso a todas las aplicaciones Java que desarrolles con MySql.

Manos a la Obra

A continuación coloco el código Java de nuestra única clase para este ejemplo, aunque como buena práctica de programación, esto debe estar separado en distintas clases, lo muestro así para que sea un poco más fácil de ver lo que nos interesa en esta ocasión la conexión con MySql.

/*
Este programa presenta un menú, acepta datos ingresados por teclado, inserta un registro en una base de datos y consulta datos de la base de datos,
imprime los resultados por pantalla
*/
import java.io.*;
import java.sql.*;

public class Soluciones{
public static void main(String args[]) throws IOException{
Menu();
}

public static void Menu() throws IOException{
try{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Menu");
System.out.println("1. Insertar");
System.out.println("2. Consultar");
String texto1 = br.readLine();
int opcion = Integer.parseInt(texto1);
if (opcion == 1){
Insertar();
}
else{
Consultar();
}
}
catch(IOException e){
System.out.println(e);
}

}

public static void Consultar(){
try{
Class.forName("com.mysql.jdbc.Driver");
//Crear el objeto de conexion a la Base de Datos
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/arquitecto?user=tu_usuario&password=tu_password");
//Crear objeto Statement para realizar queries a la Base de Datos
Statement consulta = conexion.createStatement();
//Un objeto Resultset, almacena los datos de resultados de una consulta
ResultSet tablaConsulta = consulta.executeQuery("SELECT id_solucion, descripcion FROM soluciones");
System.out.println("Id_Solucion\tDescripcion");
while(tablaConsulta.next())
System.out.println(tablaConsulta.getInt(1)+"\t"+tablaConsulta.getString(2));
}
catch(ClassNotFoundException e){System.out.println(e); }
catch(SQLException e){ System.out.println(e); }
catch(Exception e){ System.out.println(e); }
}

public static void Insertar(){
String id, nombre;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try{
System.out.println("Digite el id:");
id = br.readLine();
System.out.println("Digite el nombre:");
nombre = br.readLine();
Class.forName("com.mysql.jdbc.Driver");
//Crear el objeto de conexion a la Base de Datos
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/arquitecto?user=tu_usuario&password=tu_password");
//Crear objeto Statement para realizar queries a la Base de Datos
Statement consulta = conexion.createStatement();
//Un objeto Resultset, almacena los datos de resultados de una consulta
consulta.executeUpdate("INSERT INTO soluciones(id_solucion, descripcion) VALUES('" + id + "','" + nombre + "')");
System.out.println("Insertado");
}
catch(ClassNotFoundException e){System.out.println(e); }
catch(SQLException e){ System.out.println(e); }
catch(Exception e){ System.out.println(e); }
}
}


Eso es todo lo que necesitamos hacer, ahora tú tarea, es organizar este código en las clases correspondientes para que quede más legible y acorde con lo que realmente pretende Java.

Gracias y hasta una próxima oportunidad!

Comentarios

Entradas más populares de este blog

Project Management en la gestión del cambio

Primera Aplicación Sencilla con Django

El liderazgo en nuestro tiempo actual