You are on page 1of 5

Ejemplo de Java + SQL + Netbeans

Después de un poco de retraso de este post y de tener un poco de tiempo sin postear algo, traigo
este ejemplo (el tercero) de Java y MySQL bajo la plataforma Netbeans. El propósito de este post
es crear una clase que realmente realiza las acciones básicas (agregar, modificar, eliminar,
consultar) pero implementadas de una “mejor manera” comparada con los otros post que hay
en este blog sobre este tema (tampoco quiero decir que sea la mejor ni mucho menos).

La base de datos que usaremos para este ejemplo es la siguiente:

 BD: prueba.

 tabla: usuarios.

 campos: id(autoinc), nombre, contraseña.

Diagrama de clases:

Bueno, primero que nada empezaremos con nuestra clase que contendrá los métodos de las
acciones que vamos a realizar.

import java.sql.*;
import java.util.Hashtable;

public class SQLconnection {


private String user;
private String password;
private String db;
private String host;
private String url;
private Connection conn = null;
private Statement stm;
private ResultSet rs;

public SQLconnection()
{
this.url = “jdbc:mysql://” + this.host + “/” + this.db;
}

public SQLconnection (String server, String usuario, String contraseña, String bd)
{
this.user = usuario;
this.password = contraseña;
this.db = bd;
this.host = server;
this.url = “jdbc:mysql://” + this.host + “/” + this.db;
}

public void connectar()


{
try {
Class.forName(“org.gjt.mm.mysql.Driver”);
conn = DriverManager.getConnection(url, user, password);
if (conn != null)
{
System.out.println(“Conexión a base de datos “+url+” … Ok”);
stm = conn.createStatement();
}
}
catch(SQLException ex) {
System.out.println(“Hubo un problema al intentar conectarse con la base de datos “+url);
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
}

public String getDb() {


return db;
}

public void setDb(String db) {


this.db = db;
}

public String getHost() {


return host;
}

public void setHost(String host) {


this.host = host;
}
public String getPassword() {
return password;
}

public void setPassword(String password) {


this.password = password;
}

public String getUser() {


return user;
}

public void setUser(String user) {


this.user = user;
}

public ResultSet consultar(String tabla) throws SQLException


{
rs = stm.executeQuery(“SELECT * FROM ” + tabla);
return rs;
}

public String buscarNombre(String tabla, String nombre) throws SQLException


{
String name = null;
try{
rs = stm.executeQuery(“SELECT * FROM ” + tabla + ” WHERE nombre = ‘”+ nombre +”‘ LIMIT
1″);
rs.next();
name = rs.getString(2);
}catch(SQLException ex){System.out.println(ex);}
return name;
}

public void insertar(Hashtable usuario)


{
try {
stm.execute(“INSERT INTO usuarios (nombre, contraseña) VALUES (‘” + usuario.get(“nombre”)
+ “‘,'” + usuario.get(“contraseña”) + “‘)”);
} catch (SQLException ex) {
System.out.println(ex);
}
}

public void actualizar(String tabla, Hashtable usuario, String nombre)


{
try {
stm.execute(“UPDATE ” + tabla + ” SET nombre='” + usuario.get(“nombre”) + “‘ WHERE
nombre='” + nombre + “‘”);
} catch (SQLException ex) {
System.out.println(ex);
}
}

public void eliminar(String tabla, String nombre)


{
try {
stm.execute(“DELETE FROM ” + tabla + ” WHERE nombre='” + nombre + “‘”);
} catch (SQLException ex) {
System.out.println(ex);
}
}
}

Como podemos observar, esta clase cuenta con sobrecarga de constructores lo cual nos
permite conectarnos de 2 maneras distintas a la base de datos. La primera es utilizar el
constructor que no recibe ningún parámetro y definirlos mediante los métodos set y getpara
después llamar al método conectar. La segunda es enviarle directamente los valores al
constructor y, al igual que en la forma anterior, ejecutar el método conectar, y esta será la
forma que usaremos para nuestro ejemplo.

Primero que nada vamos a conectarnos a nuestra base de datos y realizaremos


una consulta de todos los registros:

SQLconnection con = new SQLconnection(“localhost”, “usuario”, “contraseña”, “prueba”);


con.connectar();
ResultSet rs;
rs = con.consultar(“usuarios”);
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}

En esta clase también implementamos una opción que nos permite realizar búsquedaspor
medio de nombres(es el campo de la base de datos que elegí para este ejemplo); ha este
método le mandamos 2 parámetros, que son la base de datos y el nombre:

System.out.println(con.buscarNombre(“usuarios”, “frago”));

Para insertar un nuevo registro vamos a hacer uso del Hastable para enviarle los valores que
queremos agregar:

Hashtable usuario = new Hashtable();


usuario.put(“nombre”, “frago”);
usuario.put(“contraseña”, “xxx”);
con.insertar(usuario);

Para eliminar un registro simplemente le ejecutamos el método correspondiente y le pasamos


como parametros la tabla y el nomrbe del usuario a eliminar:

con.eliminar(tabla, “frago”);
Para actualizar un registro le tenemos que pasar 3 parámetros al método. EL primero es el
nombre de la tabla; el segundo es un Hastable en el que se incluya la modificación que se
quiere realizar y el tercer es, en este caso, el nombre de la persona a la que se le va realizar la
modificación:

Hashtable usuario = new Hashtable();


usuario.put(“nombre”, “frago1”);
con.actualizar(tabla, usuario, “frago”);

El proyecto en netbeans pueden descargarselo AQUI

You might also like