Vous êtes sur la page 1sur 3

Aplicacin Java con MySQL

Imaginamos que creamos una base de datos MySQL para nuestra aplicacin en Java. Cmo podemos conectar nuestra base de datos con nuestra aplicacin? Esto es lo que resolveremos con esta entrada.

1. Debemos descargar el conector MySQL para Java, que lo podemos obtener desde la pgina oficial: http://www.mysql.com/downloads/connector/j/ 2. Aadimos el fichero .jar descargado y lo adjuntamos a nuestro proyecto: Ejemplo para NetBeans. Botn derecho sobre la carpeta Libraries y aadir archivo .jar

Desde este momento ya tenemos el conector agregado a nuestra aplicacin. 3. Instanciamos y utilizamos la librera. Para este caso, hemos creado una clase conexin con mtodos que reciben una consulta y nos devuelvan el resultado segn sea, en nuestro caso, tipo Integer o DefaultTableModel . Con esta funcin haremos una consulta SQL y guardaremos el resultado en unDefaultTableModel que ser el objeto que nos devolver esta funcin. public DefaultTableModel HacerConsulta(String sql,String[] columnas) { . . . }

Con este mtodo ejecutaremos aquellas consultas que sean Insert, Delete y Update. Devuelve un entero que representa se hay error. public int EjecutarConsulta(String sql) { . . . }

Esta funcin la utilizaremos para consultar un valor escalar. Por ejemplo una sentencia SQL del tipo: SELECT Count(*) FROM almacen. public int ConsultarEscalar(String sql) { . . . }

Puedes obtener el fichero original ms abajo, el siguiente fragmento contiene nuestra clase de conexin lista para copiar y pegar.
import import import import import import import import com.mysql.jdbc.Connection; com.mysql.jdbc.Statement; java.sql.DriverManager; java.sql.ResultSet; java.sql.SQLException; java.util.logging.Level; java.util.logging.Logger; javax.swing.table.DefaultTableModel;

public class ConexionMySQL { private String ruta; private String usuario; private String clave; private private private private Connection conexion; Statement statement; ResultSet resultSet; DefaultTableModel modelo;

public ConexionMySQL(String ruta,String usuario, String clave){ this.ruta = "jdbc:mysql://" + ruta; this.usuario = usuario; this.clave = clave; statement = null; resultSet = null; modelo = null; try { // Se registra el Driver de MySQL DriverManager.registerDriver(new org.gjt.mm.mysql.Driver()); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); } } public void Conectar() { try { conexion = (Connection) DriverManager.getConnection(ruta, usuario, clave); statement = (Statement) conexion.createStatement(); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); } } public void Desconectar() { try { statement.close(); conexion.close(); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); }

} public DefaultTableModel HacerConsulta(String sql,String[] columnas) { try { modelo = new DefaultTableModel(); for(int i=0; i<columnas.length; i++) { modelo.addColumn(columnas[i]); } Conectar(); resultSet = statement.executeQuery(sql); Object[] datos = null; while (resultSet.next()) { datos = new Object[modelo.getColumnCount()]; for (int i = 0; i < modelo.getColumnCount(); i++) { datos[i] = resultSet.getObject(i + 1); } modelo.addRow(datos); } resultSet.close(); Desconectar(); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); } return modelo; } public int EjecutarConsulta(String sql) { int error = 0; try { Conectar(); error = statement.executeUpdate(sql); Desconectar(); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); } return error; } public int ConsultarEscalar(String sql) { int valor = -1; try { Conectar(); statement = (Statement) conexion.createStatement(); resultSet = statement.executeQuery(sql); if (resultSet.first()) { valor = resultSet.getInt(1); } resultSet.close(); Desconectar(); } catch (SQLException ex) { Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex); } return valor; } }

Publicado por SERGIO

Vous aimerez peut-être aussi