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);
}
}
}
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