Professional Documents
Culture Documents
html
http://es.slideshare.net/sistemasddm/java-netbeans
http://programasvariox.blogspot.com/2010_12_01_archive.html
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.
2.
3.
4.
5.
6.
7.
8.
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
persona.java: esta clase contiene todas las funciones encargadas de manipular la base de datos
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
package PAQUETE_QUE_USARA_ESTA_CLASE ;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class conectate {
static String bd = "NOMBRE_BASE_DE_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
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
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();
}
}
Ahora en el Main.java, colocamos el siguiente codigo:
package contactos;
/**
* @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
*/
public class Main {
public static void main(String[] args) {
persona p = new persona();
p.con.desconectar();
}
}
29
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".
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
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
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
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://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
}
}
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:
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
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
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
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
al objeto JTable renombraremos a "tabla", la distribucion de los objetos debe quedar asi:
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
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://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
Paso 3:
a nuestro "tablaform", le aadimos "import javax.swing.table.DefaultTableModel;", al jframe le aadimos
la funcion WindowOpened y colocaremos el siguiente codigo:
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
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 (){
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://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
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;
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
/**
* @param args the command line arguments
*/
persona p= new persona();
Object[][] dtPer;
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
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
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://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
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:
Aadiremos un nuevo jButton al proyecto, lo llamaremos "cmdEliminar", nuestra interfaz debe quedar de
esta forma.
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
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".
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
Ahora
en
el
JFrame
correspondiente,
al
boton
que
creamos
"cmdEliminar",
le
aadimos
el
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.
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:
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
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
Ya en el jFrame de nuestro proyecto, al nuebo jButton que creamos, aadimos el siguiente codigo:
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