Вы находитесь на странице: 1из 27

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.

html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Base de Datos + Netbeans + MySQL (Proyecto Completo)

Nuestro proyecto de Base de Datos llamado "Contactos", esta completo o mas o menos completo, el codigo
contiene las funciones basicas que debe tener un proyecto de Base de Datos, aade nuevos registros, los
elimina y tambien puede modificar esos registros.
El mini tutorial esta compuesto de 8 capitulos.
1.

Clase conexion Base de Datos

2.

Probando la clase conectate.java

3.

Sentencias SQL en Netbeans

4.

Leer base de datos en Netbeans

5.

Interfaz y Base de Datos con Netbeans

6.

Agregar Registros a Base de Datos

7.

Eliminar Registros de la Base de Datos

8.

Actualizar la Base de Datos


El proyecto.
- Nuestra base de datos se llama "DBContactos" en MySQL

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

- Contiene una nica tabla llamada "Persona"

El proyecto contiene las clases:

conectate.java : encargada de conectarse con la base de datos

persona.java: esta clase contiene todas las funciones encargadas de manipular la base de datos

tablaform.java: es la interfaz grafica en si


Ademas tambien se aadieron las clases:

mipanel.java

degradadoclass.java
Ambas clases encargadas de aadir imagenes y colores a la interfaz grafica, para hacer de el proyecto final
un poco mas agradable a la vista. estas clases no tienen nada que ver con la base de datos.
Esta es nuestra interfaz final

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Clase Conexion a Base de Datos


Cuando se trabaja con base de datos en java, lo mejor para tener un trabajo controlado, limpio y que sea facil
de mantener, es hacer uso de una clase exclusiva para la conexion.
Esta "clase java" que coloco en este post me a servido mucho para realizar algunos trabajos en java sin
muchos dolores de cabeza, la clase se llama "conectate.java", y el uso es bastante sencillo. Si trabajas con
mysql, lo unico que debes modificar es el "paquete" donde lo usaras, el nombre de la base de datos, usuario y
password

package PAQUETE_QUE_USARA_ESTA_CLASE ;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

public class conectate {


static String bd = "NOMBRE_BASE_DE_DATOS";
static String login = "USUARIO";
static String password = "PASSWORD";
static String url = "jdbc:mysql://localhost/"+bd;
Connection conn = null;
public conectate() {
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url,login,password);
if (conn!=null){
System.out.println("Coneccin a base de datos "+bd+". listo");
}
}catch(SQLException e){
System.out.println(e);
}catch(ClassNotFoundException e){
System.out.println(e);
}
}
public Connection getConnection(){
return conn;
}
public void desconectar(){
conn = null;
}
}

Debo aclarar que el codigo no es mio, no coloco la fuente, porque me olvide la web de donde lo obtuve, esta
clase la tenia guardada hace tiempo en mi pc y ahora que se me presento un trabajo de java con base de
datos, la saque de la carpeta de los recuerdos y estuve recordando un poco el lenguaje.

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Probando la clase "conectate.java"


Para probar la clase "conectate.java", creada en "Clase conexion a base de datos", que nos permite
conectarnos a una base de datos de MySQL, creamos un nuevo proyecto en Netbeans con el
nombre "contactos".
Antes, me olvidaba, tenemos que tener creada la base de datos, la cual llame"dbcontactos", si no sabes
como crear la base de datos pasate por aqui, en esa base de datos creamos una tabla llamada "persona".

muy bien, ahora para probar que la conexion en verdad funciona, creamos una clase y la llamamos
"persona.java", en esta clase colocamos el siguiente codigo:
package contactos;
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class persona {
conectate con;
public persona (){
con = new conectate();
}
}

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Ahora en el Main.java, colocamos el siguiente codigo:

package contactos;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class Main {
public static void main(String[] args) {
persona p = new persona();
p.con.desconectar();
}
}

Ya solo nos queda ejecutar el proyecto (F6) y listo.

Sentencia SQL en netbeans


JAN

29

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Post Info

Mouse
en 12:36
1 comentarios

Permalink

Continuando con el post "Probando la clase conectate.java", ahora daremos una nueva funcionalidad a
nuestra clase "persona.java", que es la de aadir nuevos registros a nuestra tabla "persona".
Modificaremos la clase "persona.java" con el siguiente codigo:

package contactos;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class persona {
conectate con;
public persona (){
con = new conectate();
}
/*Aade un nuevo registro*/
public void NuevaPersona(String name, String ap, String am, String mail){
try {
PreparedStatement pstm = con.getConnection().prepareStatement("insert
into " +
"persona(Nombre, appPaterno, appMaterno, mail) " +
" values(?,?,?,?)");
pstm.setString(1, name);
pstm.setString(2, ap);

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

pstm.setString(3, am);
pstm.setString(4, mail);
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}
}
Tambien aadiremos nuevas lineas de codigo a Main.java:

package contactos;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class Main {
public static void main(String[] args) {
persona p = new persona();
p.NuevaPersona("Fulanito", "Menganito", "Zutanito", "fmz@hotmail.com");
p.con.desconectar();
}
}
ejecutamos nuevamente el proyecto (F6) y tenenmos el nuevo registro aadido a nuestra tabla

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Leer base de datos con netbeans


Ahora que pudimos manipular la base de datos con la "insercion" de nuevos registros, ahora necesitamos
extraer esos registros para poder verlos, modificaremos la clase "persona.java"para aadir la
funcion "getDatos()".

Nuestra clase Persona.java que da de esta forma:

package contactos;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class persona {
conectate con;
public persona (){
con = new conectate();

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

}
/*Aade un nuevo registro*/
public void NuevaPersona(String name, String ap, String am, String mail){
try {
PreparedStatement pstm = con.getConnection().prepareStatement("insert
into " +
"persona(Nombre, appPaterno, appMaterno, mail) " +
" values(?,?,?,?)");
pstm.setString(1, name);
pstm.setString(2, ap);
pstm.setString(3, am);
pstm.setString(4, mail);
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}
/*obtenemos todos los datos de la tabla*/
public Object [][] getDatos(){
int x = 0;
//obtenemos la cantidad de registros existentes en la tabla
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT
count(1) as total FROM persona ");
ResultSet res = pstm.executeQuery();
res.next();
x = res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object[][] s = new String[x][2];

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

//realizamos la consulta sql y llenamos los datos en "Object"


try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "
+
" id, Nombre " +
" FROM persona" +
" ORDER BY id ");
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String estCodigo = res.getString("id");
String estNombre = res.getString("nombre");
s[i][0] = estCodigo;
s[i][1] = estNombre;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return s;
}
}

La nueva funcion GetDatos() esta definida como Object [][], tambien podemos definirla como String[][], la
funcion esta dividida en dos partes, la primera encargada de realizar una consulta para conocer el numero de
registros existentes y gurdarla en la variable "registros", la segunda parte de la funcion utilizando la
variable "registros" crea un objeto con esas dimensiones y realiza la consulta para extraer los datos y
colocarlas en la variable "data[][]" que es la que retorna.
el codigo del Main, debe quedar asi:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

package contactos;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class Main {
public static void main(String[] args) {
persona p = new persona();
Object [][] sc ;
sc = p.getDatos();
for(int i=0;i<sc.length ;i++){
System.out.println("> " + sc[i][0] + " - " + sc[i][1]);
}
p.con.desconectar();
}
}
Ejecuta el programa

Interfaz y base de datos con netbeans

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Trabajando con las base de datos y extrayendo los datos para su uso con java en post anteriores, ahora
necesitamos crear una interfaz de usuario para poder interactuar de una manera sencilla con nuestra
aplicacion.
Comenzaremos por ahora solo con mostrar los datos que sacamos de la base de datos MySql, poco a poco
se ira perfecconando la aplicacion para tener al final un proyecto bastante complejo y bastante completo.
Paso1 :
Con el proyecto abierto (contactos) crearemos un nuevo jFrame al que llamaremos"tablaform", a esta nueva
ventana le aadiremos los controles JPanel y JTable como se ve en la imagen

al objeto JTable renombraremos a "tabla", la distribucion de los objetos debe quedar asi:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Paso 2:
Modificaremos la clase "persona.java", mas concretamente la funcion "getDatos()", los cambios que hicimos
fueron para poder leer todos los datos de nuestra tabla

public Object [][] getDatos(){


int registros = 0;
//obtenemos la cantidad de registros existentes en la tabla
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT
count(1) as total FROM persona ");
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object[][] data = new String[registros][5];
//realizamos la consulta sql y llenamos los datos en "Object"
try{

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "


+
" id, Nombre, appPaterno, appMaterno, mail " +
" FROM persona" +
" ORDER BY id ");
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String estCodigo = res.getString("id");
String estNombre = res.getString("nombre");
String estpaterno = res.getString("appPaterno");
String estmaterno = res.getString("appMaterno");
String estmail = res.getString("mail");
data[i][0] = estCodigo;
data[i][1] = estNombre;
data[i][2] = estpaterno;
data[i][3] = estmaterno;
data[i][4] = estmail;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}

Paso 3:
a nuestro "tablaform", le aadimos "import javax.swing.table.DefaultTableModel;", al jframe le aadimos
la funcion WindowOpened y colocaremos el siguiente codigo:

private void formWindowOpened(java.awt.event.WindowEvent evt) {


//objeto para almacenar datos

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Object[][] dtPer;
String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "EMail"};
// se utiliza la funcion
dtPer = p.getDatos();
// se colocan los datos en la tabla
DefaultTableModel datos = new
DefaultTableModel(dtPer,columNames);
tabla.setModel(datos);
}

Ya solo queda ejecutar la aplicacion:

Agregar registros a base de datos con netbeans


Continuando con nuestro mini-proyecto, ahora llego la hora de agregar/eliminar/actualizar registros a la base
de datos de forma visual.

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Nuestro proyecto se llama "contactos", las clases que utilizamos son conectate.java y persona.java, la base de
datos (dbcontactos) y tabla (persona) que usamos las puedes ver aqui.
Clase persona.java

package contactos;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class persona {
conectate con;
public persona (){
con = new conectate();
}
/*Aade un nuevo registro*/
public void NuevaPersona(String name, String ap, String am, String mail){
try {
PreparedStatement pstm = con.getConnection().prepareStatement("insert
into " +
"persona(Nombre, appPaterno, appMaterno, mail) " +
" values(?,?,?,?)");
pstm.setString(1, name);
pstm.setString(2, ap);
pstm.setString(3, am);
pstm.setString(4, mail);
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

/*obtenemos todos los datos de la tabla*/


public Object [][] getDatos(){
int registros = 0;
//obtenemos la cantidad de registros existentes en la tabla
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT
count(1) as total FROM persona ");
ResultSet res = pstm.executeQuery();
res.next();
registros = res.getInt("total");
res.close();
}catch(SQLException e){
System.out.println(e);
}
Object[][] data = new String[registros][5];
//realizamos la consulta sql y llenamos los datos en "Object"
try{
PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "
+
" id, Nombre, appPaterno, appMaterno, mail " +
" FROM persona" +
" ORDER BY id ");
ResultSet res = pstm.executeQuery();
int i = 0;
while(res.next()){
String estCodigo = res.getString("id");
String estNombre = res.getString("nombre");
String estpaterno = res.getString("appPaterno");
String estmaterno = res.getString("appMaterno");
String estmail = res.getString("mail");
data[i][0] = estCodigo;
data[i][1] = estNombre;
data[i][2] = estpaterno;
data[i][3] = estmaterno;

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

data[i][4] = estmail;
i++;
}
res.close();
}catch(SQLException e){
System.out.println(e);
}
return data;
}
}
Empezemos:
Paso 1: crea un jFrame "tablaform" y coloca los siguientes controles, renombralos como se ve en la imagen
de abajo. cuidado con las mayusculas y minusculas!

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Nos dirigimos a Source (su codigo) y realizaremos lo siguiente;


Paso 2: declara import javax.swing.table.DefaultTableModel; ya sabes donde
Paso 3: coloca estas lineas de codigo.

/**
* @param args the command line arguments
*/

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

persona p= new persona();


Object[][] dtPer;
int fila = -1;
Paso 4: Aade estos dos metodos, el primero updateTabla(), actualiza el objeto tabla cada vez que se lo
invoca, el metodo nuevo(), su funcion es la de limpiar los jTextFields para aadir nuevos datos.

private void updateTabla(){


String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "EMail"};
// se utiliza la funcion
dtPer = p.getDatos();
// se colocan los datos en la tabla
DefaultTableModel datos = new
DefaultTableModel(dtPer,columNames);
tabla.setModel(datos);
}
private void nuevo(){
txtname.setText("");
txtpaterno.setText("");
txtmaterno.setText("");
txtmail.setText("tu_correo@hotmail");
}

Paso 5: aade el evento WindowOpenend al jFrame, el evento ActionPerformed a los objetos jButton y el
evento MouseClicked al objeto jTable, aade el codigo que se ve abajo

private void formWindowOpened(java.awt.event.WindowEvent evt)


{
updateTabla();

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

nuevo();
}
private void cmdRegistroActionPerformed(java.awt.event.ActionEvent evt) {
String name = txtname.getText();
String pat = txtpaterno.getText();
String mat = txtmaterno.getText();
String mail = txtmail.getText();
p.NuevaPersona(name, mat, pat, mail);
updateTabla();
}
private void cmdNuevoActionPerformed(java.awt.event.ActionEvent evt) {
nuevo();
}
private void tablaMouseClicked(java.awt.event.MouseEvent evt) {
fila = tabla.rowAtPoint(evt.getPoint());
if (fila > -1){
txtname.setText(String.valueOf(tabla.getValueAt(fila, 1)));
txtpaterno.setText(String.valueOf(tabla.getValueAt(fila, 2)));
txtmaterno.setText(String.valueOf(tabla.getValueAt(fila, 3)));
txtmail.setText(String.valueOf(tabla.getValueAt(fila, 4)));
}
}
Paso 6: Compila y ejecuta el proyecto

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Eliminar/Borrar registros de base de datos con netbeans

Le aadiremos una nueva funcionalidad a nuestro proyecto base de datos y netbeans, esta funcionalidad es la
de poder eliminar registros de la base de datos, todo de una forma visual y sencilla.
Recordemos

un

poco,

nuestro

proyecto

se

llama "contactos",

las

clases

que

utilizamos

son conectate.java y persona.java, la base de datos (dbcontactos)y contiene una tabla (persona) puedes ver
con mas detalle nuestra base de datos aqui.
Los cambios que realizamos son:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Aadiremos un nuevo jButton al proyecto, lo llamaremos "cmdEliminar", nuestra interfaz debe quedar de
esta forma.

Para poder eliminar un registro de la base de datos realizaremos una instruccion SQL con el comando
DELETE, para ello debemos tener muy en cuenta la conformacion de nuestra tabla "Persona".

En la clase persona.java, aadiremos la nueva funcion deletePersona(), dentro la cual colocaremos la


instruccion SQL, ejecutaremos la sentencia y cerramos.

public void deletePersona(String cod){


try {
PreparedStatement pstm =
con.getConnection().prepareStatement("delete from persona where id
= ?");
pstm.setString(1, cod);

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}

Ahora

en

el

JFrame

correspondiente,

al

boton

que

creamos

"cmdEliminar",

le

aadimos

el

evento ActionPerformded, copias el siguiente codigo.

private void cmdEliminarActionPerformed(java.awt.event.ActionEvent evt) {


if (fila > -1){
String codigo = String.valueOf(tabla.getValueAt(fila,
0));
p.deletePersona(codigo);
updateTabla();
fila=-1;
}
}

Este cdigo lo que hace es revisar si la variable "fila" contiene un valor diferente a "-1",esto sucede cuando
se realiza un clic sobre el objeto "tabla", si esto es cierto, quiere decir que tenemos una fila seleccionada, por
lo tanto procedera a extraer el codigocorrespondiente y con este codigo hara un llamado a
deletePersona(codigo), elimina el registro y reinicia el valor de fila a -1 para evitar inconvenientes.

Actualizar/update registros de la base de datos con netbeans

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Una ultima funcionalidad que le falta a nuestro miniproyecto debase de datos, es la de poder "modificar" los
datos leidos de la base de datos, para despues poder guardar esos cambios, para ello:
- Aadimos un nuevo jButton a nuestro proyecto.
- En nuestra clase, persona.java aadimos el codigo:

public void updatePersona(String id, String name, String paterno, String materno,
String mail){
try {
PreparedStatement pstm = con.getConnection().prepareStatement("update
persona " +
"set Nombre = ? ," +
"appPaterno = ? ," +
"appMaterno = ? ," +
"mail = ? " +
"where id = ? ");
pstm.setString(1, name);
pstm.setString(2, paterno);
pstm.setString(3, materno);
pstm.setString(4, mail);
pstm.setString(5, String.valueOf(id));
pstm.execute();
pstm.close();
}catch(SQLException e){
System.out.println(e);
}
}
Explicacion: Esta nueva funcion, recibe como parametros el "id" codigo del registro que se modificara,
ademas de los datos necesarios para realizar la consulta, como el nombre, apellido paterno , materno y el
mail

de

la

persona.

Luego

se

realiza

una

consulta

SQL

pasando

esos

datos.

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysqlproyecto.html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
http://www.videogameall.net/CLjayJhRsyQ/Netbeans-Access-Base-de-DatosJava-Video-4-Parte-1-2

Ya en el jFrame de nuestro proyecto, al nuebo jButton que creamos, aadimos el siguiente codigo:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)


{
if (fila > -1){
String codigo = String.valueOf(tabla.getValueAt(fila, 0));
String name = txtname.getText();
String pat = txtpaterno.getText();
String mat = txtmaterno.getText();
String mail = txtmail.getText();
p.updatePersona(codigo, name, pat, mat, mail);
updateTabla();
}
}
Lo unico que hace es capturar los datos del JTable, asignarlas a variables y llamar a la funcion
updatePersona().

Вам также может понравиться