martes, 21 de abril de 2009

Conexión Java con MySQL y MySQL Administrator.

El siguiente articulo a pedido y necesidad de varios compañeros publico la una de las manera de como conectar de forma simple Java con MySQL 6.0 (el método es tradicional para todas la versiones de motor partiendo de la 4.2), además implementando MySQL Administrator (software) donde se puede hacer un manejo de Query que me imagino que a muchos le interesa para realizar sus tablas, relaciones y triggers.
Diré de un principio que idealmente sería lo mejor implementar una clase de conexión para no estar repitiendo el código que colocare a continuación (también cuando hacemos multiusuario o Super user). Hablare sobre una clase de conexión en un próximo artículo, ya que este requiere una buena explicación del contenido de la clase y su implementación.

Lo primero y lo mas importante los archivos que necesitaremos para realizar este tedeoso, pero gran logro paso de Microsoft Access DataBase a MySql.

Driver de conexión.
Link: http://dev.mysql.com/downloads/connector/j/5.1.html

Motor nativo de MySql 6.0
Link: http://dev.mysql.com/downloads/mysql/6.0.html

Software de administración de MySQL llamado MySQL Administrator
Link: http://dev.mysql.com/downloads/gui-tools/5.0.html

Guia de instalación.

1.- Descarguen el driver, dentro del driver en .zip tomen el
mysql-connector-java-5.1.7-bin y guárdenlo en su proyecto como "hueso santo".
Luego se van a su proyecto (Usen Netbeans 6.5) y buscan la carpeta Libraries, presionan botón derecho y colocan la opción ADD JAR/Folder... y buscan el driver mysql-connector-java-5.1.7-bin que dejaron en su carpeta de proyecto. (Nota por defecto cada vez que llevemos su proyecto a otro lugar debemos llevar el driver y hacer este paso, en otro artículo diré como se agrega en el setpacht del driver como por defecto al proyecto; para evitar hacer esto siempre).


2.-Bajen MySql 6.0 o el que ustedes estimen conveniente e instálenlo, con su configuración por defecto, estándar o personalizado. SERÉ MAJADERO CON ESTA ÚLTIMA FORMA DE CONFIGURACION, en default character set usen UTF-8 o tendrán problemas al hacer Querys.
Luego recuerden elegir una password simple como "123micasa" o "holamundo" algo simple porque la ocuparan después; fíjense también que en la instalación les dirá un puerto por defecto ANOTENLO por que también lo usaran al rellenar la conexión.


Si tiene problemas con la instalación háganme un comentario por blogspot, o personalmente y les ayudo, porque a veces da problemas variados, desde puerto hasta de inicio de servicio.

3.- Bajen MySQL Administrator y instálenlo por defecto.

Ya una vez instalado todo y hecho la guía al pie de la letra iniciaremos MySQL Administrator (esta en la carpeta de programas MySQL> MySQL Administrator).
Una vez ejecutado nos saldrá una ventana de donde aparentemente se puede loguear.


En la ventana que aparecerá la primera línea:
Stored Connection y verán un combobox sin nada y un botón de 3 puntos pequeño, presiónenlo y les saldrá una ventana así:


Link de la imagen: http://img243.imageshack.us/my.php?image=conexion.jpg

En esa ventana rellenan Connection con cualquier nombre, lo importante es el username que es root, el Hostname que es localhost y el puerto es el que anotaron cuando instalaron MySQL. No es necesario que coloquen el password.


Luego presionen Apply y Closed, después en el combobox buscan su conexión, colocan el user root y su password que configuraron en la instalación de MySQL.

Presionan ok y luego les saldrá una ventana inmensa de variadas opciones. Busquen en la barra de menú Tool y luego presionen la opción MySQL Query Browser. Les aparecerá otra ventana nueva así como esta:




Link de la imagen: http://img27.imageshack.us/my.php?image=conexion2.jpg
Si se fijan es muy similar la interfaz de línea de comando a Oracle, EasyPhP, Postgre, etc...

Luego escriban inmediatamente entren:
USE test; //esta línea dice que base de datos usar.
Y presionen el botón de rayo (botón verde con figura interna de un rayo color blanco).


Finalmente de haber escrito esa línea podrán crear, insertar, actualizar, eliminar, hacer triggers, vistas, etc...; en la base de datos seleccionada.






Nos vamos ahora a nuevo proyecto de prueba.
Haremos una clase, con cualquier nombre en este caso se llamara Conexión y tendrá un simple método llamado Conectar.

Apliquen copiar y pegar a todo el código, para hacerlo mas rápido.

import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class Conexion {

void Conextar() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception MiExcepcion) {
System.out.println("No funciona el driver");
}


try {

ResultSet DatoTraido;
String hostDB = "localhost"; // Nombre del servidor por defecto
String portDB = "3307";// Coloquen el puerto que anotaron
String nombreDB = "test"; // Nombre de la base de datos
String User = "root";//Super User por defecto
String Pass = "holamundo";//Mi clave que elegi en la instalacion
java.sql.Connection conexion = DriverManager.getConnection("jdbc:mysql://" + hostDB + ":" + portDB + "/" + nombreDB, User, Pass);// Es la conexion con el URL( integrado por hostname y port), USER y PASSWORD
java.sql.Statement Query = conexion.createStatement();//Stamento mas que conocido por todos
Query.executeQuery("SELECT Nombre FROM TablaTest WHERE Rut='12345'");//hice una query de tipo SELECT de mi base de datos, prueben un INSERT o UN CREATE TABLE.
DatoTraido = Query.getResultSet();

if (DatoTraido.next()) {
System.out.println("Traje el siguiente Dato "+DatoTraido.getString("Nombre"));
//Bloque de sentencia que mostrara una salida por pantalla mas el dato que recibi con mi ResultSet
}


DatoTraido.close();


} catch (Exception MiExcepcion) {
System.out.println("Revisa la conexión o la Query esta mal hecha");
//Si la conexión no está bien seteada ya sea por el puerto o clave que no colocaron bien no les conectara
}

}
}

Luego creamos un objeto e instanciamos su método correspondiente obteniendo un resultado de salida de pantalla.


Conclusión este método probara el driver en su primer try, posteriormente en el segundo try se definirá la conexión, el ResultSet, y la Query entre otros. Siguiente a ello se ejecutara nuestro if que preparara nuestro ResulSet.next para que hagamos la extracción del campo seleccionado en el siguiente bloque de sentencia.
Terminado con salida de pantalla concatenada con el objeto ResulSet e instanciando el retorno del dato del campo indicado, en este caso el campo Nombre. Por lo que finalmente Llegaremos a a ver lo siguiente en mi caso
"Traje el siguiente Dato " Francisco .

Dudas consultas por aquí, messenger y en persona en la U.

By NobleDev.-


MisterJava.-

Primer ciclo SUN Day

Excelente charla, de tipo "practica" en DUOC Plaza Oeste, que culmino con aplauso y una distinción a nuestro señor orador Carlos Maureira, representante o embajador SUN Campus Ambassador.

El Fuerte de este mismo "foro" que se vivió en cada instante, fue conocer el nuevo esquema de JavaFX y los variados mitos sobre MySql en el mercado actual, en el desarrollo de una base de datos y practica versus una aplicación final. Sin duda esta charla fue para los más novatos una manera de motivar más ese impulso por aprender y tanto para los más aguerridos fue una nueva arma en este mundo de Java donde tú puede ser el que "CHANGE (Y)OU WORLD".

Aún sin confirmar habrá un segundo ciclo de SUN Day en la sede DUOC Plaza Oeste, fijado para fines de este mes o a mediados de Mayo. Cuando este se confirme avisare lo más pronto posible por medio del blog.

By NobleDev.-


MisterJava.-

lunes, 20 de abril de 2009

Sun Day en DUOC Plaza Oeste 21 de Abril

Así es mañana SUN Day en DUOC Plaza Oeste la charla comienza a las 10:00 Hrs AM y finaliza a las 14:00 Hrs PM.

Los oradores no están mencionados, pero si los temas a tratar que son los siguientes:

-JavaFX (Codificador de contenido al estilo de JavaScript)

-Introducción a MySql.

-Mitos de la estructura de MySql.


Según el secretariado de DUOC nuestro SUN Day de mañana será gestionado por gente Externa, cabe mencionar que serán miembros del SUN en su totalidad o al menos una proporción, aun que no podría asegurar que los tres puntos a exponer, o por lo menos los últimos dos sean llevados por agentes de SUN directamente.

nota la charla es el 21 de Abril del 2009, es decir mañana.

By NobleDev.-


MisterJava.-

domingo, 19 de abril de 2009

Validar un numero

Para inaugurar este Blog deseo decirles que este sitio será para compartir mi conocimiento con ustedes.

Comenzaremos Primero, con la validación de un número sabiendo la posibilidad de que este puede tener una letra o algún símbolo. Para solucionar este requerimiento ocuparemos fácilmente el try y catch el cual por el momento nos ayudara a validar lógicamente nuestro numero sin errores, mostrando el contenido de la excepción para ratificar la falla y nuestro programa no se caiga.

Haremos lo siguiente, Construiremos un método así como:


public void ValidaNumero() {

String PalabraConNumero="2560"; // Aqui se rellena el número
try {
int NumeroConvertido = Integer.parseInt(PalabraConNumero); //Esta
//líneatransfromara el numero en String a int


System.out.println("El número " + NumeroConvertido);//imprime el número //transformado

} catch (Exception ex) {
System.out.println("Error De convesión");//Si el numero tiene una letra o
//simbolo arrojara el error

}

Conclusión, el método valida si la conversión es incorrecta, es decir si no se logra hacer la conversión de String a int, ya que se puede haber incluido en el String una letra o símbolo. Por lo tanto nuestro bloque de sentencia de conversión terminaría siendo inválido y a su vez se iniciaría el cuadro de excepción catch, donde se mostraría el error nuestro try, en este caso "Error De conversión" .

Este método es muy útil incluirlo en el validador de un Rut ya que podríamos estar evaluando la conversión antes que la función propia del Rut.

Gracias Amigo try y catch por ayudarnos hoy.


By NobleDev.-


MisterJava