martes, 5 de julio de 2011

JDBC

En esta entrada mostrare como hacer la conexión de java con la base de datos y unos comandos de MySQL.

Antes de comenzar a trabajar con JDBC se requieren varias cosas entre ellos el JDK actualmente es el 6 - con este programarías en lenguaje JAVA.

sudo apt-get install openjdk-6-jdk

Se requiere mysql-client, el mysql-admin y el mysql-server para poder utilizar MySQL. Para descargarlos se puede hacer desde la terminal de ubuntu tecleando lo siguiente:

sudo apt-get install mysql-client
sudo apt-get install mysql-admin
sudo apt-get install mysql-server

El conector de JAVA para poder utilizar MySQL (ese conector tiene la extencion .bin.jar) este lo descargas directamente de la pagina MySQL (aunque hay que ser usuario registrado para descargar), si lo ocupan me dicen, una vez hallas descargado el conector debes de mover a la maquina virtual de JAVA para poder manejar JDBC para hacer eso necesitas teclear este comando desde la terminal de Ubuntu:
 
sudo mv (El nombre del conector incluyendo sus extensiones) /usr/lib/jvm/java-6-openjdk/jre/lib/ext 

Una vez realizado esto comenzaremos con JDBC.

Para realizar la conexion con la base de datos con JAVA es utilizar el siguiente codigo.
import java.sql.*; //Este import maneja todo lo relacionado a JDBC

public class BDManagement {

 private final static String drv ="com.mysql.jdbc.Driver";   //Esta es la dirección del Driver de mysql
 private final static String db = "jdbc:mysql://localhost:3306/NombreDeLaBaseDeDatosAHacerConexión";
 private final static String user = "root"; //root es el que esta por default se recomienda que sea ese siempre
 private final static String pass = "Su contraseña para conectarse a la base de datos via terminal";

 private Connection cont; //Esta Variable es para la Conexion
 private Statement st;  //Esta Variable es para poder realizar los comandos de MySQL desde JAVA

 private ResultSet rs; //Este tipo de variable se utilza para cuando utilicemos los Select

 /** *El Constructor de Clase se encarga de Comprobar la conexión de los Statement y de la Base de Datos - normalmente se maneja la conexión dentro del constructor*/ 
        public BDManagement()
        {
  /*Si no funciona la Conexión te muestra que no se pudo hacer la Conexión con la Base de Datos*/
  try
  {
   Class.forName(drv);
   cont = DriverManager.getConnection(db, user, pass); //Este es el que hace la conexión de los statement con MySQL
   st = cont.createStatement(); //Haciendo esto permites que se pueda utilizar para trabajar

   System.out.print("Conexion Exitosa\n");
  }catch(Exception e)
  {
   System.out.println("No se pudo conectar a la Base de Datos");
  }
 } //Fin del Metodo BDManagement 

Para realizar los comandos de MySQL en JAVA que sirven para insertar informacion a la base de datos consiste en utilizar el executeUpdate, la forma de introducirlo es poner:


NombreDelStatement.executeUpdate("Comando de MySQL");

Por ejemplo:

public void CreaTabla(String Prueba)
 {
  try
  {
          st.executeUpdate("CREATE TABLE "+Prueba+" (Identificador INT(4), Marc1 DOUBLE, Marc2 DOUBLE, Marc3 DOUBLE, MejMarc1 DOUBLE, Marc4 DOUBLE, Marc5 DOUBLE, MejMarc2 DOUBLE, Marc6 DOUBLE, MejMarc3 VARCHAR(6), LUGAR INT(3), PRIMARY KEY(Identificador))");
   System.out.println("Si se Pudo Crear la Tabla\n");
  }catch(Exception e)
  {
   System.out.println("No se Pudo Crear la Tabla\n");
  }
 }//Fin del Metodo CreaTabla

Para realizar consultas se requiere del executeQuery junto con el Statement y el ResultSet la estructura de una consulta es la siguiente:

NombreDelResultSet = NombreDelStatement.executeQuery("Consulta de MySQL");


Un ejemplo utilizando todo lo mencionado seria el siguiente:

public void InAtl(String Prueba, int Numero, String Nombre, String Equipo)
{
 try
 {
  rs = st.executeQuery("SELECT Memoria.Identificador FROM Memoria WHERE Memoria.Numero = "+Numero);
  if(rs.next())
  {
   int Ref = rs.getInt(1);
   Identificador = Ref;
  }else
  {
   Identificador = Numero;
  }
  x = 1;

  if(Prueba.equals("Memoria"))
  {
   st.executeUpdate("INSERT INTO Memoria (Identificador, Numero, Nombre, Equipo) VALUES("+Identificador+", "+Numero+",'"+Nombre+"','"+Equipo+"')");
   System.out.println("Si se Pudo Meter los Datos en la Tabla Memoria");
  }else if(x == 1)
  { 
   try
   {
    st.executeUpdate("INSERT INTO "+Prueba+" (Identificador) VALUES("+Identificador+")");
    x = 1;
    System.out.println("Si se Pudo Meter los Datos en la Tabla "+Prueba+"\n");
   }catch(Exception e)
   {
    System.out.println("Error el Numero "+Numero+" en la Tabla "+Prueba+" ya esta declarado\n");
    System.out.println("INSERT INTO "+Prueba+" (Identificador) VALUES("+Identificador+")");
   }
  }
 }catch(Exception e)
 {
  System.out.println("OK");
 }
}//Fin del Metodo InAtl

No hay comentarios:

Publicar un comentario