jueves, 16 de junio de 2011

Conectar Java a MySQL codificando en JCreator

¿Quien me pude decir como hago para conectar una base de datos hecha en MY SQl con un proyecto hecho en java con el IDE Jcreator?, se lo agradecería.....

R:\
Lo mejor que pueden hacer es centralizar el manejo de las conexiones a la base de datos en una sola clase esta clase debe cargar un archivo de propiedades los parametros para la conexion, en las librerias del proyecto deben poner el jar del driver de conexion a la bd a continuacion describo los pasos en JCreator.

1. Creamos la clase que se encargara de las conexion, la definicion de la clase podria ser la siguiente:
package co.edu.politecnicojic.utils.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConnectionManager {
 private static final String driverClassName;
 private static final String dataBaseURL;
 private static final String userName;
 private static final String password; 
  
 static{
  Properties props = new Properties();
        InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("appconfig.properties");
        try {
         props.load(inputStream);
            Logger.getLogger(ConnectionManager.class.getName()).log(Level.INFO, "appconfig.properties sucessfully loaded");
            driverClassName = props.getProperty("database.driver");
         dataBaseURL = props.getProperty("database.url");
         userName = props.getProperty("database.username");
         password = props.getProperty("database.password");
         try {
             Class.forName(driverClassName);
         } catch (ClassNotFoundException ex) {
             Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, "Error regitering driver class", ex);
             throw new ExceptionInInitializerError("Error inicializando la clase del driver");
         }
  } catch (IOException ex) {
         Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, "appconfig.properties can't be loaded", ex);
            throw new ExceptionInInitializerError("Error al cargar el archivo de configuracion");
        } catch (Exception ex) {
         Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, "appconfig.properties can't be loaded", ex);
         throw new ExceptionInInitializerError("Error inesperado al cargar el archivo de configuracion");
        }
 }
 /**
  * Method getConnection
  *
  *
  * @return
  *
  */
 public static Connection getConnection() throws SQLException{
  return DriverManager.getConnection(dataBaseURL, userName, password);
 }

 /**
  * Method disconnect
  *
  *
  */
 public static void disconnect(Connection connection) throws SQLException{
  connection.close();
 } 
}
2. Agregamos las librerias del driver de conexion a la base de datos: 
  •  Click en Project > Project Settings...
  •  Click en required libraries y en new

  • Diligenciamos un nombre para la libreria y despues le damos a add archive, despues seleccionamos el archivo .jar con las librerias de conexion de MySQL en mi caso use mysql-connector-java-3.1.11-bin.jar


  • Compilamos el proyecto

  • Ahora creamos el archivo de configuracion que usaremos para cargar los parametros de conexion a la base de datos, este archivo se debe llamar appconfig.properties este archivo debe tener el siguiente contenido:
    database.url=jdbc:mysql://localhost:3306/CURSOS
    database.driver=com.mysql.jdbc.Driver
    database.username=root
    database.password=zxzxzx
    el archivo lo debemos poner en carpeta classes que se encuentra en la carpeta del proyecto que estamos trabajando.

La forma de usar la clase centralizada para el manejo de las conexiones es la siguiente:
  • el metodo getConnection() nos da la conexion a la bd que configuramos en el archivo.
  • el metodo disconnect(Connection) cierra la conecxion a la bd.
A continuacion pongo un ejemplo de su uso:

import co.edu.politecnicojic.utils.jdbc.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

public class ConnectioManagerExample {
    
    public static void main(String[] args) {
     System.out.println("Ejecuto");
     Connection con = null;
     PreparedStatement ps = null;
     ResultSet rs = null;
     ResultSetMetaData rsmd = null;
     try{
      con = ConnectionManager.getConnection();
      ps = con.prepareStatement("show processlist");
      rs = ps.executeQuery();
      rsmd = rs.getMetaData();
      for(int i =1; i<=rsmd.getColumnCount();i++){
       System.out.print(rsmd.getColumnName(i)+"\t\t\t");
      }
      while(rs.next()){
       System.out.println();
       for(int i =1; i<=rsmd.getColumnCount();i++){
        System.out.print(rs.getString(i)+"\t\t\t");
       }
      }
     }catch(Exception e){
      e.printStackTrace();
     }finally{
      try{
       if(rs != null){
        rs.close();
       }
      }catch(Exception e){
      }
      try{
       if(ps != null){
        ps.close();
       }
      }catch(Exception e){
      }
      try{
       ConnectionManager.disconnect(con);
      }catch(Exception e){
       e.printStackTrace();
      }
     }
    }
}

A continuacion les dejo un link donde podran encontrar el proyecto sobre el que hice las pruebas si tienen algun inconveniente posteen para poder revisarlo.

ConnectionManagerExample

2 comentarios:

Alejandra dijo...

Hay yo Tengo Un Inconveniente igual el proyecto no se me quiere conectar a la base de datos que hago?

daniel dijo...

pero usted en que hizo la base de datos..