Ir al contenido principal

Algo light... muy light... java / mysql

Algo que todo el mundo no se cansa de tenerlo cerca, una guí breve y rápida para lograr conectar un programita Java con una base de datos Mysql.

Las partes del Logger las pueden quitar (import + log.info + log.error).

package capadatos.test;

import java.net.URL;
import java.sql.*;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

/**
* Esta clase es nada más para realizar un test contra una base de datos
* Mysql. El script de la tabla a la cual se hace consulta sigue a
* continuación:
*
* create table persona (
* id int(10) unsigned NOT NULL auto increment,
* nombre varchar(100) default NULL,
* fechaNacimiento datetime NOT NULL,
* salario float NOT NULL,
* PRIMARY KEY (id)
* );
*/
public class TestMySql {

private static Logger log = Logger.getRootLogger();

public static void main(String[] args) {
String resource = "/auditoria.properties";
URL configFileResource = TestMySql.class.getResource(resource);
PropertyConfigurator.configure(configFileResource);

String host = "localhost";
String database = "estructura";
String instance = "";
int port = 3306;
String username = "root";
String password = "……"; // colocar la contraseña

String url = "jdbc:mysql://" + host + "/" + database;
Connection con = null;

boolean driverOk = false;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
driverOk = true;
} catch (InstantiationException e) {
log.error("No pudo instanciar, seguramente no hay la libreria", e);
} catch (IllegalAccessException e) {
log.error("No tiene permisos para instanciar", e);
} catch (ClassNotFoundException e) {
log.error("No encuentra esa clase, revise la librería o la versión de la misma",
e);
}
if (!driverOk)
System.exit(0);

try {
con = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
log.error("No pudo conectarse a la base de datos", e);
System.exit(0);
}

String query =
"SELECT id, nombre, fechaNacimiento, salario FROM Persona";
ResultSet res = null;
try {
Statement stmt = con.createStatement();
res = stmt.executeQuery(query);
} catch (SQLException e) {
log.error("No puede ejecutar la consulta SQL", e);
System.exit(0);
}

try {
while (res.next()) {
int _id = res.getInt("id");
String _nombre = res.getString("nombre");
Date _fechaNacimiento = res.getDate("fechaNacimiento");
double _salario = res.getDouble("salario");

System.out.println("(" + _id + ") '" + _nombre + "' " + _fechaNacimiento.toString() + " :" + _salario);
}

con.close();
} catch (SQLException e) {
log.error("Error en el motor SQL", e);
}
}
}

Comentarios

Entradas más populares de este blog

Hangfire, si no lo estás usando, estás haciendo algo mal (.NET world)

Hangfire es una librería espectacular que permite encolar tareas en un servidor de tareas que funciona dentro de tu aplicación web. Existen varios tutoriales que muestran de manera bastante sencilla cómo puedes ir integrando esto a tu aplicación. En esta publicación vamos a repetir, pero en español, y sobretodo vamos a tratar de ir lo más al punto posible. Qué es? Es una librería que la cargas a través de NUGET como cualquier otra librería. En realidad tenemos que cargar 3 librerías pero eso lo veremos más adelante. Una vez que hayas cargado todo lo necesario en tu aplicación web tendrás lo siguiente: Un servidor de colas : es decir, un lugar al cual le puedes mandar hacer cosas y no se olvida de esas cosas y las va ejecutando a medida que puede o tiene tiempo. Esto es muy útil para que tu aplicación no pierda tiempo haciendo algo que no necesita realmente hacer en ese instante y devolver más rápido al usuario final. Un tablero de control de colas : una serie de ...

Nuget muy grande en tu carpeta personal

Problema : Veo que mi disco duro C ha crecido bastante y necesito espacio. Cuando veo que una carpeta .nuget dentro de mi cuenta de usuario tiene 15 GB. Solución : Esa carpeta existe como cache para que VS no busque el paquete cada vez desde la web. Entonces, la solución consiste en los siguientes pasos. Listar cuales son los folders o contenedores de estos paquetes nuget dotnet nuget locals all --list http-cache: <USER>\AppData\Local\NuGet\v3-cache global-packages: <USER>\.nuget\packages\ temp: <USER>\AppData\Local\Temp\NuGetScratch plugins-cache: <USER>\AppData\Local\NuGet\plugins-cache Limpiar las direcciones que tienen estos paquetes nuget con el utilitario de nuget dotnet nuget locals http-cache --clear Clearing NuGet HTTP cache: C:\Users\Vladimir\AppData\Local\NuGet\v3-cache Local resources cleared. y así para cada uno de los locals que se ve en la lista anterior. Luego se debe cambiar las variables de entorno para que esto no nos vuelva a pasar. Como se...

Con la vejez a cuestas, dos

 Indefectiblemente cuando se hace cualquier retrospectiva, uno no puede dejar de arrepentirse de algunas cosas. A veces lo decimos muy bajito y solamente lo escucha nuestro subconsciente; otras veces hasta lo escribimos. Pero en todo caso, siendo un poco sinceros con nosotros mismos, siempre tenemos esas astillas de arrepentimiento en diferentes ámbitos. Este cuento tiene que ver con el ámbito profesional, aunque está bastante influído por otros ámbitos en mi vida. Siempre sentí fascinación por lo lógico que se sentía programar. El poder entender las cosas de manera tan cristalina; de estar tan seguro que una cosa iba a funcionar muchísimo antes de que se pusiera la primera línea de código. Todas las piezas de lego se encuentran ante tus ojos y, con la ayuda de unas cuantas teclas puedes moverlas y ponerlas juntas, separarlas, volverlas dinámicas, cambiarles absolutamente todo. Es tan poco natural el ver el potencial de creación y no hacer nada. Así que lo más normal es ponerse a h...