Hola amigos en esta ocasión vamos a mostrar desde la creación de una base de datos y sus tablas mediante la realización de un ejercicio en Netbeans que realiza las cuatro funciones básicas como son: guardar, Editar, Actualizar y Eliminar datos y a su ves genere los repostes.
1. Crear la base de datos correspondiente al proyecto
(Matriculas).
2. Creamos las tablas necesarias con sus atributos
correspondientes. (Tb_Estudiante).
3. Creamos un proyecto en Netbeans con su respectivo
nombre (Sistema_Matriculas) y sus paquetes correspondientes
(Modelo,Vista,Controlador).
4. Creamos la clase que nos permite conectar con la
base de datos (Cls_Conexion) en el paquete controlador.
Tal y como se lo muestra en el siguiente código:
Antes de realizarla debemos agregar la librería My SQL
Driver
public class Cls_Conexion {
Connection miconexion=null;
public Connection conexion() {
try {
Class.forName("com.mysql.jdbc.Driver");
miconexion=DriverManager.getConnection("jdbc:mysql://localhost/Matriculas","root","root");}
catch (Exception
e) {
System.out.printf(e.getMessage());}
return
miconexion;
}
}
5.- Creamos la clase Estudiante con su constructor y métodos
get y set en este caso hemos puesto 7 atributos.
public class Cls_Estudiante {
public String
Nombre,Apellido,Cedula,Telefono,Edad,Sexo,Direccion;
public Cls_Estudiante (){}
public Cls_Estudiante( String Nombre,
String Apellido, String Cedula, String Telefono, String Edad, String Sexo,
String Direccion) {
this.Nombre
= Nombre;
this.Apellido =
Apellido;
this.Cedula =
Cedula;
this.Telefono =
Telefono;
this.Edad = Edad;
this.Sexo = Sexo;
this.Direccion =
Direccion;
}
public String getNombre() {
return Nombre;
}
public void setNombre(String Nombre) {
this.Nombre
= Nombre;
}
public String getApellido() {
return Apellido;
}
public void setApellido(String Apellido)
{
this.Apellido =
Apellido;
}
public String getCedula() {
return Cedula;
}
public void setCedula(String Cedula) {
this.Cedula =
Cedula;
}
public String getTelefono() {
return Telefono;
}
public void setTelefono(String Telefono)
{
this.Telefono = Telefono;
}
public String getEdad() {
return Edad;
}
public void setEdad(String Edad) {
this.Edad = Edad;
}
public String getSexo() {
return Sexo;
}
public void setSexo(String Sexo) {
this.Sexo = Sexo;
}
public String getDireccion() {
return Direccion;
}
public void setDireccion(String Direccion) {
this.Direccion
= Direccion;
}
}
6. Creamos el formulario Frm_Estudiantes donde
colocamos 8 labels 8 cajas de texto 8 botones, y además una tabla para mostrar
los datos.
public
class Frm_Estudiantes extends javax.swing.JFrame {
/**
* Creates new form Frm_Estudiantes
*/
public
Frm_Estudiantes() {
initComponents();
mostrardatoscedula("");
}
Método mostrar datos
public void MOSTRARDATOS(String valor){
DefaultTableModel
modelo = new DefaultTableModel();
modelo.addColumn("ID");
modelo.addColumn("Nombre");
modelo.addColumn("Apellido");
modelo.addColumn("Cedula");
modelo.addColumn("Telefono");
modelo.addColumn("Edad");
modelo.addColumn("Sexo");
modelo.addColumn("Dirección");
Tabla_Datos.setModel(modelo);
String sql
="";
if (valor.equals("")){
sql="Select * from Tb_Estudiante";}
else{
sql="Select * from Tb_Estudiante Where
cedula='"+valor+"'";}
String []datos =new String [8];
try{
Statement st=(Statement) cn.createStatement();
ResultSet rs= st.executeQuery(sql);
while(rs.next()){
datos[0]=rs.getString(1);
datos[1]=rs.getString(2);
datos[2]=rs.getString(3);
datos[3]=rs.getString(4);
datos[4]=rs.getString(5);
datos[5]=rs.getString(6);
datos[6]=rs.getString(7);
datos[7]=rs.getString(8);
modelo.addRow(datos);}
Tabla_Datos.setModel(modelo);}
catch(Exception
e){}
}
7. Código correspondiente al botón guardar
int op = JOptionPane.showConfirmDialog(null,"Deseas
guardar los datos");
if(op==
JOptionPane.YES_OPTION){
try {
PreparedStatement pst =(PreparedStatement) cn.prepareStatement("INSERT
INTO Tb_Estudiante(Nombre,Apellido,Cedula,Telefono,Edad,Sexo,Direccion)
Values(?,?,?,?,?,?,?)");
String nombre = txtNombre.getText();
String apellido = txtApellido.getText();
String
cedula = txtCedula.getText();
String telefono = txtTelefono.getText();
String edad =cmbEdad.getSelectedItem().toString();
String sexo= txtSexo.getText();
String direccion = txtDireccion.getText();
Cls_Estudiante
e = new Cls_Estudiante(nombre, apellido, cedula, telefono, edad, sexo,
direccion);
pst.setString(1, e.getNombre());
pst.setString(2, e.getApellido());
pst.setString(3, e.getCedula());
pst.setString(4,
e.getTelefono());
pst.setString(5, e.getEdad());
pst.setString(6, e.getSexo());
pst.setString(7, e.getDireccion());
pst.executeUpdate();
mostrardatoscedula("");
} catch (Exception e) {
}
}else{
JOptionPane.showMessageDialog(null,"No se guardaron los datos");
btnGuardar.setText("Interrumpido");
}
8. Código correspondiente al botón Editar.
private
void EditarActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
int fila =Tabla_Datos.getSelectedRow();
if(fila>=0){
txtID.setText((String) Tabla_Datos.getValueAt(fila, 0).toString());
txtNombre.setText((String) Tabla_Datos.getValueAt(fila, 1).toString());
txtApellido.setText((String) Tabla_Datos.getValueAt(fila,
2).toString());
txtCedula.setText((String) Tabla_Datos.getValueAt(fila, 3).toString());
txtTelefono.setText((String) Tabla_Datos.getValueAt(fila, 4).toString());
cmbEdad.setSelectedItem((String) Tabla_Datos.getValueAt(fila, 5).toString());
cmbSexo.setSelectedItem((String) Tabla_Datos.getValueAt(fila, 6).toString());
txtDireccion.setText((String) Tabla_Datos.getValueAt(fila, 7).toString());
}
else{
JOptionPane.showMessageDialog(null,"No selecciono ningun dato");
}
}
9. Código correspondiente al botón Actualizar.
try {
PreparedStatement pst = (PreparedStatement) cn.prepareStatement(""
+
"UPDATE Tb_Estudiante SET Nombre='" + txtNombre.getText() +
"',Apellido='" + txtApellido.getText() +
"',Cedula='" +
txtCedula.getText()+
"',Telefono='"
+ txtTelefono.getText() +
"',Edad='"
+ cmbEdad.getSelectedItem()+
"',Sexo='" +
cmbSexo.getSelectedItem()+
"',Direccion='"
+ txtDireccion.getText()+
"'
Where id='" + txtID.getText()+"'");
pst.executeUpdate();
mostrardatoscedula("");
} catch
(SQLException ex) {}
10. Código correspondiente al botón Eliminar
try {
int op = JOptionPane.showConfirmDialog(null,"Desea eliminar este
dato");
if(op==JOptionPane.YES_OPTION){
int fila =Tabla_Datos.getSelectedRow();
String id = Tabla_Datos.getValueAt(fila, 0).toString();
PreparedStatement pst = (PreparedStatement) cn.prepareStatement("DELETE
FROM Tb_Estudiante where ID = '"+id+"'");
pst.executeUpdate();
mostrardatoscedula(""); }
else{
JOptionPane.showMessageDialog(null,"El dato no se ha
borrado");}
} catch
(SQLException ex) {
}
11. Creamos un popmenu dentro del navegador
12. Agregamos dentro del popmenu dos menuItems, en este caso
se llamarán Editar y Eliminar
Algo importante luego de esto debemos agregar el popmenu a
nuestra tabla.
12. Por último vamos a generar los reportes para poder
presentar nuestros datos para lo cual utilizamos el siguiente código
Código Reporte general
try {
JasperReport reporte =
JasperCompileManager.compileReport("Reporte_General");
JasperPrint imprime = JasperFillManager.fillReport(reporte,
null,this.cn);
JasperViewer.viewReport(imprime);
} catch
(Exception e) {
System.out.printf("No
se ejecuta");
}
Código Reporte Específico
Según el parámetro Cedula
String parametrocedula = txtCedula.getText();
Map parametro=
new HashMap();
parametro.put("Cedula",parametrocedula);
try {
JasperReport reporte
=JasperCompileManager.compileReport("Reporte_Especifico.jrxml");
JasperPrint imprime = JasperFillManager.fillReport(reporte,parametro,this.cn);
JasperViewer.viewReport(imprime);
} catch
(Exception e) {
System.out.printf("No
se ejecuta"); }