Archive

Archive for 14 junio 2011

Instalar Perl en Windows

14 junio 2011 2 comentarios

Ejecutar un script de Perl en Linux es muy fácil, ya que Perl viene instalado por defecto con Linux (o al menos en las distros que yo he probado), pero en Windows no es tan fácil. En Windows debemos instalar Perl y configurar ciertos parámetros antes de poder ejecutar un script.

Sin embargo hay una forma de hacer que instalar Perl en Windows sea muy fácil: “Active Perl”.
ActivePerl es un paquete de Perl “todo-en-uno” que nos instalar y configura Perl en un par de pasos, ya que lo hace todo por nosotros. Además, también instala “PPM"" (Perl Package Manager) el cual nos simplificará el proceso de instalar nuevos paquetes de Perl.

Es totalmente gratuito y nos lo podemos descargar de la siguiente web: http://www.activestate.com/activeperl

Categorías:Programacion Etiquetas:

Acceder a MySQL desde Java

Imaginamos que creamos una base de datos MySQL para nuestra aplicación en Java. ¿Cómo podemos conectar nuestra base de datos con nuestra aplicación? Esto es lo que resolveremos con esta entrada.

1. Debemos descargar el conector MySQL para Java, que lo podemos obtener desde la página oficial:

http://www.mysql.com/downloads/connector/j/

2. Añadimos el fichero .jar descargado y lo adjuntamos a nuestro proyecto: Ejemplo para NetBeans.
Botón derecho sobre la carpeta Libraries y añadir archivo .jar

paso1

Desde este momento ya tenemos el conector agregado a nuestra aplicación.

 

3. Instanciamos y utilizamos la librería. Para este caso, hemos creado una clase conexión con métodos que reciben una consulta y nos devuelvan el resultado según sea, en nuestro caso, tipo Integer o DefaultTableModel .

Con esta función haremos una consulta SQL y guardaremos el resultado en un DefaultTableModel que será el objeto que nos devolverá esta función.
public DefaultTableModel HacerConsulta(String sql,String[] columnas)
{
. . .
}
 

Con este método ejecutaremos aquellas consultas que sean Insert, Delete y Update. Devuelve un entero que representa se hay error.

public int EjecutarConsulta(String sql)
{
. . .
}
 

Esta función 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 más abajo, el siguiente fragmento contiene nuestra clase de conexión lista para copiar y pegar.

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
 
public class ConexionMySQL {
    private String ruta;
    private String usuario;
    private String clave;
 
    private Connection conexion;
    private Statement statement;
    private ResultSet resultSet;
    private 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;
    }
 
}

.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

Categorías:Programacion Etiquetas: ,