martes, 11 de marzo de 2014

Consulta SQL sobre MySQL desde Java







Vamos a detallar los pasos a seguir para hacer una consulta SQL desde nuestra aplicación Java.

 

Importar el driver JDBC

Tenemos que descargar el driver oficial JDBC para MySQL desde aquí: http://dev.mysql.com/downloads/connector/j/3.1.html . Posteriormente lo importaremos a nuestro IDE. Si estamos utilizando Eclipse lo haremos de la siguiente forma: pulsando con el botón derecho sobre la carpeta del proyecto; pulsamos en Propiedades; opción "Java Build Path"; pestaña Librerías; finalmente pulsamos en "Add External JAR" y seleccionamos el archivo mysql-connector-java-3.1.14-bin.jar (el nombre puede variar dependiendo de la versión que hayamos bajado).


El código

Queremos hacer una consulta sobre una base de datos MySQL, que en mi caso se encuentra en mi equipo local. A continuación se muestra el código.

import java.sql.*;

public class Consulta {

    public static void main(String[] args) throws SQLException,
            ClassNotFoundException {

        try {
            Class.forName("com.mysql.jdbc.Driver");

            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/bd", "usuario", "contraseña");

            Statement stmt = conn.createStatement();

            String query = "SELECT * FROM producto;";
            ResultSet rs = stmt.executeQuery(query);

            while (rs.next()) {
                String marca = rs.getString("MARCA");
                System.out.println(marca);
                String descripcion = rs.getString("DESCRIPCION");
                System.out.println(descripcion);
            }

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

}


Es muy importante configurar la conexión jdbc correctamente. Me estoy refiriendo a la siguiente línea:

Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/bd", "usuario", "contraseña");

Como mi base de datos se encontraba en mi equipo local he puesto localhost, pero de no ser así, habría que poner el nombre del equipo (host) donde se encuentra.


En bd hay que poner el nombre de la base de datos, y a continuación en "usuario" y "contraseña" pondremos el usuario y contraseña de la base de datos.

He hecho un SELECT de una tabla llamada producto, la cual tiene dos columnas (MARCA y DESCRIPCION). Para guardar los registros resultantes de la consulta utilizo un Resultset. Finalmente recorro el Resultset y voy mostrando en pantalla su contenido.


Espero que os sirva. Como siempre, podéis utilizar los comentarios para exponer vuestras dudas.




lunes, 10 de marzo de 2014

Comparar dos directorios rápidamente en Linux









En Linux se pueden comparar dos directorios o carpetas mediante el comando diff. Por ejemplo, si ejecutamos lo siguiente:
diff directorio1 directorio2

Ésto nos indicará qué archivos están en un directorio y no en otro. En caso de que haya dos archivos con el mismo nombre y su contenido sea distinto, también se indicará.

El comando anterior tiene un inconveniente, y es que puede ser demasiado lento. Si los directorios contienen muchos archivos o si la unidad de almacenamiento es algo lenta, el proceso puede eternizarse.  Pero el siguiente comando solucionará ésto de un plumazo:

diff <(cd dir1 && find | sort) <(cd dir2 && find | sort)


Como vemos, se sigue usando el comando diff, pero en vez de comparar los archivos, compara el listado ordenado del directorio.

Si lo probáis veréis lo potente que puede llegar a ser. Podéis utilizar los comentarios si os surge alguna pregunta.




Fuentes:




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO