Professional Documents
Culture Documents
22072008
Despus 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 propsito de este post es crear una clase que realmente realiza las acciones bsicas (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, contrasea. Diagrama de clases:
Bueno, primero que nada empezaremos con nuestra clase que contendr los mtodos de las acciones que vamos a realizar. import import java.util.Hashtable; public private private private private private private Connection class String String String String String conn = SQLconnection { user; password; db; host; url; null; java.sql.*;
private private ResultSet rs; public { this.url } public { this.user this.password this.db this.host this.url } public { try Class.forName(org.gjt.mm.mysql.Driver); conn if { System.out.println(Conexin stm } } catch(SQLException System.out.println(Hubo } catch(ClassNotFoundException System.out.println(ex); } } public return } public this.db } public return } public this.host } public return } public this.password } void void void un problema al a base = = = jdbc:mysql:// + SQLconnection (String server, = jdbc:mysql:// +
Statement
stm;
String = = = =
usuario,
String
contrasea,
String
bd) usuario;
this.host
void
connectar() {
user,
password); null)
+url+
Ok);
conn.createStatement();
{ +url); {
String
getDb() { db;
setDb(String =
db) { db;
String
getHost() { host;
setHost(String =
host) { host;
String
getPassword() { password;
setPassword(String =
password) { password;
public return } public this.user } public { rs return } public { String try{ rs = stm.executeQuery(SELECT * FROM + name String buscarNombre(String = stm.executeQuery(SELECT ResultSet void
String
getUser() { user;
setUser(String =
user) { user;
consultar(String *
tabla) FROM
throws +
tabla,
String
nombre) =
throws
SQLException null;
tabla =
WHERE
nombre
nombre
LIMIT
1);
rs.next(); name }catch(SQLException return } public { try )); } System.out.println(ex); } } public { try } System.out.println(ex); } } public { try stm.execute(DELETE } 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 ningn parmetro y definirlos mediante los mtodos set y get para despus llamar al mtodo conectar. La segunda es enviarle directamente los valores al constructor y, al igual que en la forma anterior, ejecutar el mtodo conectar, y esta ser la forma que usaremos para nuestro ejemplo. FROM catch + tabla + WHERE nombre= + ex) nombre + (SQLException { ); { void eliminar(String tabla, String nombre) catch (SQLException ex) { { stm.execute(UPDATE + tabla + SET nombre= + usuario.get(nombre) + WHERE nombre= + nombre + ); void actualizar(String tabla, Hashtable usuario, String nombre) catch (SQLException ex) { { stm.execute(INSERT INTO usuarios (nombre, contrasea) VALUES ( + usuario.get(nombre) + , + usuario.get(contrasea) + void insertar(Hashtable usuario) rs.getString(2); ex){System.out.println(ex);} name;
Primero que nada vamos a conectarnos a nuestra base de datos y realizaremos unaconsulta de todos los registros: SQLconnection con.connectar(); ResultSet rs while(rs.next()){ System.out.println(rs.getString(1)); System.out.println(rs.getString(2)); System.out.println(rs.getString(3)); } En esta clase tambin implementamos una opcin que nos permite realizarbsquedas por medio de nombres(es el campo de la base de datos que eleg para este ejemplo); ha este mtodo le mandamos 2 parmetros, 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.put(nombre, usuario.put(contrasea, con.insertar(usuario); Para eliminar un registro simplemente le ejecutamos el mtodo 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 parmetros al mtodo. EL primero es el nombre de la tabla; el segundo es un Hastable en el que se incluya la modificacin que se quiere realizar y el tercer es, en este caso, el nombre de la persona a la que se le va realizar la modificacin: Hashtable usuario.put(nombre, con.actualizar(tabla, usuario, frago); usuario = new Hashtable(); frago1); usuario = new Hashtable(); frago); xxx); = rs; con.consultar(usuarios); con = new SQLconnection(localhost, usuario, contrasea, prueba);