miércoles, 24 de diciembre de 2008

Conexion MySQL - Java en Ubuntu

Primero vamos a instalar mysql de la siguiente manera:

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

Descargamos el conector de mysql desde el siguiente link:

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz/from/pick?file=Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz&mirror=pick&file=Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz&mirror=pick#mirrors

Lo instalamos de la siguiente manera:

$sudo chmod +x mysql-connector-java-5.1.7.tar.gz
$tar -xzvf mysql-connector-java-5.1.7.tar.gz
$cd mysql-connector-java-5.1.7
$sudo cp /home/user/Documents/mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar /usr/lib/jvm/jre/lib/

Ahora agregamos el archivo jar a la PATH de la siguiente manera...

#export set CLASSPATH=/path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH

Donde path sera la ruta en la que tenemos el archivo .jar, en este ejemplo /usr/lib/jvm/jre/lib/

Otra forma que para mi caso seria lo mas recomendable es poner el archivo .jar en nuetro proyecto de netbeans... De la siguiente manera:
Damos clic derecho sobre nuestro proyecto y despues en Properties, nos abre una ventana donde damos clic en libraries y despues en add Jar/Folder y buscamos el archivo .jar que contiene el conector que vamos a ocupar...


Ahora vamos a crear la base de datos y la tabla de prueba, con los siguientes comandos:

mysql> create database prueba;
mysql> use prueba;
mysql> create table persona (id smallint auto_increment, nombre varchar(60),nacimiento date, primary key(id));

Insertamos un registro.

mysql > insert into persona (nombre, nacimiento) values ('primitivo', '1985-07-18')

Una vez creada la base de datos vamos a crear el codigo de nuestro archivo java con el siguiente codigo para realizar una consulta a la base de datos:

package prueba;

/**
*
* @author primitivo
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Main {

/**
* @param args the command line arguments
*/

protected Connection conn = null;
protected Statement stmt = null;

/**

* Conecta con la base de datos 'prueba' del servidor
* MySQL local.

**/

public void conectar() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
this.conn = DriverManager.getConnection("jdbc:mysql://localhost/prueba", "root", "tu_passwd");
this.stmt = conn.createStatement();
}

/**

* @throws Exception DOCUMENT ME!

*/

public void desconectar() throws Exception {
if (this.stmt != null) {
try {
this.stmt.close();
} catch (SQLException SQLE) {
SQLE.printStackTrace();
}
}
if (this.conn != null) {
try {
this.conn.close();
} catch (SQLException SQLE) {
SQLE.printStackTrace();
}
}
}
protected void consultarRegistro(Connection conn, String SQLquery) throws SQLException {

ResultSet rs = stmt.executeQuery(SQLquery);
int columns = rs.getMetaData().getColumnCount();
System.out.println("------------------------");
System.out.println();
while (rs.next()) {
for (int i = 1; i <= columns; i++) {
System.out.println(rs.getString(i));
}
System.out.println();
}
rs.close();
stmt.close();
System.out.println("------------------------");
System.out.flush();
}

public static void main(String[] args) throws Exception {
// TODO code application logic here
Main mn = new Main();

try{
mn.conectar();
System.out.println("Conexion Satisfactoria!!!");
mn.consultarRegistro(mn.conn, "SELECT * FROM persona");
System.out.println("La Consulta se realizo exitosamente!!!");
mn.desconectar();

}
catch (Exception e) {
e.printStackTrace();
}
}
}

Y aqui tenemos la imagen de que todo funciona a la perfeccion...



Espero que les haya servido... Para realizar actualizaciones, eliminacion e insercion a la base de datos dejar su comentario para que suba el codigo correspondiente...