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 ...

El contagio top-bottom

 Charlábamos en una reunión bastante informal el tema de que el equipo de fútbol de Bolivia era un fiel reflejo de la sociedad boliviana actual y que sus resultados están acorde con esta realidad. Y nos pusimos a reflexionar. Qué importante es que la cabeza, las instituciones, los grupos de poder, las empresas, ... funcionen de manera correcta. No es una regla pero el individuo se suele dejar llevar por lo que impulsa el grupo social donde está: En la familia se comporta como se comportan la mayor parte de los familiares En el trabajo se comporta como se comportan la mayor parte de los colegas En una tienda se comporta como se comportan la mayor parte de los clientes En un juicio se comporta como se comportan la mayor parte de los juzgados En el congreso del país se comporta como se comportan la mayor parte de los diputados etc... De nuevo, no es una regla, pero indefectiblemente la mayoría logra arrastrar a un porcentaje importante de cada uno de los que participa de un grupo. En ...

To chatgpt or not to chatgpt

Algunos días me levanto con ganas de escribir más que solamente un par de líneas. Este es uno de esos días. Me gustan mucho esos días en los que te sientas a escribir y solamente comienzan a aparecer una tras otra las palabras. A veces pasa porque tenemos muchas cosas en la cabeza, a veces pasan porque tenemos un tiempo para nosotros, a veces solamente pasan. Chino avanzado Hace más de 22 años que doy clases en la universidad. Clases de programación III, también antiguamente conocida como Estructura de Datos. Esta materia es una de las materias filtro para el área de programación. Si, por estas latitudes algunas materias son filtro; es para no decir que son un poco más difíciles que el resto de las materias en el semestre. En mi opinion todas las materias deberían ser materias filtro, o en el peor de los casos, una materia en el semestre podría ser la materia descanso; pero esa es discusión para una próxima entrega. Esta materia tiene la particularidad que demanda desarrollar una compe...