Anda di halaman 1dari 76

Universidad Juárez Autónoma de Tabasco

División Académica de Informática y Sistemas

Tutorial
Programación en Bases de Datos

Proyecto Escolar usando Java- Netbeans

Profesor
Dr. Herman Aguilar Mayo
herman_aguilar1@hotmail.com
www.hermanaguilar1.blogspot.com
Proyecto Escolar usando Java- Netbeans

Algunas buenas prácticas en Java:

No abreviar los nombres.


No usar artículos.
Variables comienzan en minúsculas, palabras posteriores en
mayúsculas, ejemplo apellidoPaternoHijo.
Clases comienzan con mayúscula, ejemplo Alumno.
Proyectos comienzan con mayúscula y siguen con mayúscula.
Paquetes en minúsculas.
Todas las variables privadas, acceder a través de getters y
setters

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Nuevo proyecto

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Categoría: Java
Proyecto: Java Application

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Proyecto: NombreEquipo

Directorio y carpeta del proyecto

Paquete default

Clase ejecutable

Establecer proyecto
Principal en NetBeans

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Clase ControlEscolar.java que contiene el método main, lo que


convierta la clase en ejecutable

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar JDBC para Oracle en la carpeta librerías -> Add JAR /


Folder

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En la carpeta donde haya instalado Oracle buscar las sub


carpetas product\11.2.0\server\jdbc\lib o similar hasta
encontrar el ojdbc5.jar y seleccionarlo

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Controlador JDBC para Oracle listo para usar en el proyecto

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar una clase, sobre el paquete


controlescolar -> New -> Java Class

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Class Name: Sistema (recuerde, nombre de clase en mayúscula)

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar los imports necesarios a utilizar, la figura muestra


como debe de quedar. (puede copiar el código en esta
diapositiva y pegarlo)

import java.sql.Connection; //conexion a SQL


import java.sql.DriverManager; //Manejador de SQL
import java.sql.ResultSet; //Resultados de consultas
import java.sql.SQLException; //excepciones generados por SQL
import java.sql.Statement; //sentencia SQL
import javax.swing.JOptionPane; // panel para mostrar mensajes cuadro de dialogo

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Variables a manejar dentro de la clase.

private static Connection conexion; //variable para manejar la conexión a la BD


private static Statement sentencia; //para mandar las sentencias SQL a la BD
public static String titulo; //título de nuestra aplicación

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar los siguientes métodos después


de las variables de la clase

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* trata de conectarse a la base de datos
* si se conecta regresa true
* sino muestra el error y regresa false
* @return
*/
public static boolean conectarBaseDatos() {
try {
titulo="Base de Datos Control Escolar";

// cargar el driver en este caso oracle


DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// hacer la conexion
conexion = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:nombreBD", “usuario",
“password");
sentencia = conexion.createStatement();
return true;
} catch (Exception ex) {
mensaje(ex.getMessage());
return false;
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**para desconectar de la base de datos


*
*/
public static void desconectarBaseDatos(){
try {
conexion.rollback();

} catch (SQLException ex) {


mensaje(ex.getMessage());
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* regresa el ResulSet con los datos de la consulta
* si hay un error muestra el mensaje de error de la bd y regresa null
* @param sql
* @return
*/
public static ResultSet getResultSet(String sql) {
try {
return sentencia.executeQuery(sql);
} catch (SQLException ex) {
mensaje(ex.getMessage()+”\n”+sql);
return null;
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* ejecuta un comando de insert, update o delete en la base de datos
* si la base de datos acepta regresa true, sino muetsra el error y regresa false
* @param sql sentencia sql
* @return
*/
public static boolean ejecuta(String sql) {
try {
sentencia.executeUpdate(sql);
return true;
} catch (SQLException ex) {
mensaje(ex.getMessage() +”\n”+sql);
return false;
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* Muestra mensaje en una caja de dialogo
* @param mensaje
*/
public static void mensaje(String mensaje){
JOptionPane.showMessageDialog(null, mensaje, titulo,JOptionPane.NO_OPTION);
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* Muestra una pregunta y el usuario acepta o la rechaza
* @param mensaje
*/
public static boolean preguntar(String mensaje){
return JOptionPane.showConfirmDialog(null, mensaje, titulo, JOptionPane.YES_NO_OPTION)==0;
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

/**
* pide un texto en una caja de dialogo
* @param mensaje
*/
public static String getTexto(){
String x = JOptionPane.showInputDialog(null, "Introduzca el texto", titulo,
JOptionPane.QUESTION_MESSAGE);
if (x==null)
x="";
return x;
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Probando la conexión a la base de datos

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En ControlEscolar.java (ejecutable), modificar el main()

Ejecutar

Si no puede conectar, imprimirá un mensaje como

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Ejercicios para el segundo parcial

Modificar el código del primer ejercicio para:

Manejar los datos de forma visual; para esto a continuación les


doy una muestra para el catálogo de municipios donde se
manejarán: Altas (insert), bajas (delete), cambios (update) y
consultas (select).

Ustedes debe de agregar los siguientes


catálogos: Estados, colonias, alumnos, periodos,
profesor, carreras, materias

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Es muy importante que ya hayan hecho el


primer ejercicio, porque si no tienen la
conexión a la base de datos, no podrán hacer
este.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En la clase NombreEquipo.java, el método main() debe quedar

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En la clase Sistema.java, el método getTexto () se sobre carga y


debe quedar:

public static String getTexto(){


return getTexto("Introduzca el texto");
}

public static String getTexto(String leyenda){


String x = JOptionPane.showInputDialog(null, leyenda, titulo, JOptionPane.QUESTION_MESSAGE);
if (x==null)
x="";
return x;
}

Además para quitar los espacios y agregar los apóstrofos:

public static String cadenaBaseDatos(String valor) {


return "'"+valor.trim()+"'";
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En el paquete nombreequipo agregar una clase

Esta clase servirá para manipular los datos mostrados en la


pantalla en forma de cuadrícula (JTable).

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar extends DefaultTableModel

Click sobre el foquito para solucionar el error y elegir import


javax.swing.table.DefaultTableModel

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar dentro de la clase, el código


boolean columnas[] = new boolean[30];

public void setColumnaEditable(int columna, boolean editable){


columnas[columna] = editable;
}
public void setColumnasEditable(boolean editable){
for (int i=0; i < columnas.length;i++)
columnas[i]= editable;
}

@Override
public boolean isCellEditable (int row, int column)
{

return columnas[column];
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En la carpeta Source Package del proyecto agregar un nuevo


paquete

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En el paquete visual agregar una nueva clase (formulario), pero


de tipo JFrame Form

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En el paquete visual agregar una nueva clase, pero de tipo


JFrame Form

Darle el nombre de Menu

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Observe que la ventana Menu.java tiene Source donde se puede ver y


modificar el código; Design donde puede diseñar visualmente y con Drag
and Drop (arrastrar) desde la paleta (Palette) de componentes.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Arrastrar un Menu Bar desde la paleta y soltarlo dentro del formulario

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Con el botón derecho de mouse modificar el menú para que quede

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En la paleta de propiedades en “title” le pues colocar el título de sistema.

En mi caso “Control Escolar HAM”

Cada quién debe colocar su nombre de equipo.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para maximizar la pantalla principal menu, en la pestaña del código, buscar


el constructor y agregar

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

No olvide agregar el import

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Modificar el main de NombreEquipo.java

if (Sistema.conectarBaseDatos()){
Menu menu = new Menu();
menu.setVisible(true);
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar otro formulario en el paquete visual pero de tipo JDialog Form

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar a Municipios desde la paleta de componentes, sección “Swing


Controls”

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para cada elemento con botón derecho del mouse “Change Variable Name”

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para los botones y las etiquetas con botón derecho del mouse “Edit Text”

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para programar las acciones sobre los comandos, botón


derecho -> Events -> Action –> actionPerformed

En el caso de menu para ejecutar el catálogo de municipios

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Agregar

Municipios municipios = new Municipios(this,false);


municipios.setVisible(true);

This: se para la referencia el mismo menu (JFrame Form) para


que municipios (JDialog Form) pueda existir, ya que funciona
sobre el primero.

False: para que municipios no se ejecute encima de menu, si se


coloca true hasta que se cierre se regresa el control a menu.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Ejecutar el proyecto.

Hasta aquí debe funcionar:

•La conexión a la base de datos


•El menú
•Ejecución del catálogo de municipios con su diseño sin
funcionalidad.

No continuar si no tiene los tres puntos

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

De aquí en adelante vamos a trabajar como Municipios

Enlazando MiTableModel con Tabla (Jtable)

MiTableModel modelo = new MiTableModel();

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En Tabla botón derecho “Table Contents”

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Después de Close (cerrar) no se observará el cambio, se


recomienda guardar, cerrar el formulario y abrir de nuevo.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Hacer tabla que el usuario pueda seleccionar sólo un registro

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para agregar las columnas, en el constructor:

// agregando las columnas a la tabla (JTable)


modelo.addColumn("Id");
modelo.addColumn("Nombre");
modelo.addColumn("Estado");
//distribuyendo el ancho de las columnas, note que la suma de los productos es 1.00
tabla.getColumn("Id").setPreferredWidth((int)(tabla.getWidth()*0.20));
tabla.getColumn("Nombre").setPreferredWidth((int)(tabla.getWidth()*0.60));
tabla.getColumn("Estado").setPreferredWidth((int)(tabla.getWidth()*0.20));

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Para agregar las columnas, ejecutar:

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Llenado tabla desde la base de datos:

•Agregar un método buscar.

•El método recibe un parámetro String con la condición de


búsqueda.

•En el constructor (primera vez) ejecutamos este método con la


cadena vacía (sin condición).

•Cada vez que el usuario elija buscar, llamaremos este método


con la condición correspondiente.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Llenado tabla desde la base de datos:

Método buscar

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Llenado tabla desde la base de datos:

Agregando el try catch


private void buscar(String condicion){
try {
//construyendo la sentencia Select
String consulta=" select municipio_id, nombre, estado_id "+ //seleccionando los valores de la tabla
" from municipios "+ //origen de los datos
condicion+ //agregando la condición
" order by nombre"; //ordenando alfabéticamente

//ejecutando la consulta a la base de datos


ResultSet resultados = Sistema.getResultSet(consulta);

//limpiando la tabla desde el modelo


modelo.setRowCount(0);

//recorrer el ResultSet
while (resultados.next()){
//agregar registro uno a uno
modelo.addRow(new Object[] {resultados.getInt("municipio_id"),
resultados.getString("nombre"),
resultados.getInt("estado_id")
}
);
}
} catch Exception ex) { //también puede ser SQLException
//no hacer nada, recuerde que en caso de error en la consulta, Sistema manda el error
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Llenado tabla desde la base de datos:

Modificar el constructor para que inicialmente llame a buscar


buscar("");

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En el constructor vamos a llenar el JComboBox estado.

try {
//limpiando el JComboBox, por si tiene algo
estado.removeAllItems();
//consulta a la base de datos para la lista de estados
//el nombre e id se concatenan para llenar el combo como uno solo
ResultSet estados =
Sistema.getResultSet("select nombre||'*'||estado_id as nombre from estados order by nombre");
//recorriendo la tabla
while (estados.next())
estado.addItem(estados.getString("nombre"));
} catch (Exception ex) {
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

En el constructor vamos a llenar el JComboBox estado.

Ejecutar y probar

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, después de llenarla:

•Sí tiene datos posicionarse en el primer registro


•Actualizar

Actualizar: Método para actualizar el detalle del municipio,


habilitar tabla y los botones de nuevo, guardar, eliminar. Para
ello es necesario saber la posicion de tabla.

Posición: Puntero que señala cual es el registro activo en tabla,


será establecido como -1 (no hay datos) y 0 (primer registro) en
buscar, y variable cuando el usuario haga click en n registro.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, después de llenarla:

Sí tiene datos posicionarse en el primer registro:

//para seleccionar siempre el primer registro después de consultar la base de datos


if (modelo.getRowCount()>0)
tabla.changeSelection(0, 0, false, false);

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, después de llenarla:

Sí tiene datos posicionarse en el primer registro:

Ejecución

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, método actualizar:

Antes declarar nuevoRegistro y posicion

private boolean nuevoRegistro;


private int posicion;

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, método actualizar:

Regresar a buscar donde se selecciona el primer registro

Modificar y hacer que posicion sea igual a cero


//para seleccionar siempre el primer registro después de consultar la base de datos
//para seleccionar siempre el primer registro después de consultar la base de datos
if (modelo.getRowCount()>0){
tabla.changeSelection(0, 0, false, false);
posicion =0; //apuntar al primer registro en modelo y tabla
nuevoRegistro = false; //si hay datos
}else{
posicion = -1; //para saber que esta vacío
nuevoRegistro = true; //no hay datos, automáticamente en 'nuevo'
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, método actualizar:


private void actualizar(){
if (nuevoRegistro){

//deshabilitando los botones y tabla


tabla.setEnabled(false);
nuevo.setEnabled(false);
eliminar.setEnabled(false);
tabla.setEnabled(false);

//limpiando los objetos visuales


municipioId.setText("");
nombre.setText("");
estado.setSelectedIndex(-1);

}else{
//habilitando los botones y tabla
tabla.setEnabled(true);
nuevo.setEnabled(true);
eliminar.setEnabled(true);
tabla.setEnabled(true);

//llenado los objetos visuales de captura


municipioId.setText(modelo.getValueAt(posicion, 0).toString());
nombre.setText(modelo.getValueAt(posicion, 1).toString());

//obteniendo el id del estado y consultando en la BD


String estadoId = modelo.getValueAt(posicion, 2).toString();
estadoId = " select nombre||'*'||estado_id as nombre"+
" from estados "+
" where estado_id="+estadoId;
try {
ResultSet estados = Sistema.getResultSet(estadoId);

//no es necesario recorrer, ya que es PK


if (estados.next())
estado.setSelectedItem(estados.getString("nombre"));
} catch (Exception ex) {
}
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, método actualizar:

Ejecutar y observar que el detalle muestra los datos del registro


(primero) seleccionado

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, click sobre cualquier registro y


actualizar el detalle.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, click sobre cualquier registro y


actualizar el detalle.
Botón derecho sobre tabla ->Events->Mouse->mouseClicked

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a la tabla, click sobre cualquier registro y


actualizar el detalle.
Botón derecho sobre tabla ->Events->Mouse->mouseClicked

posicion=tabla.getSelectedRow();
actualizar();

Ejecutar y verificar que el detalle se actualice al hacer click


sobre cualquier registro.

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a cada uno de los botones, para cada


uno botón derecho -> Events -> Action –> actionPerformed

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón nuevo:

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


nuevoRegistro = !nuevoRegistro;
if (modelo.getRowCount()==0)
nuevoRegistro= false;
actualizar();
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón guardar:


private void guardarActionPerformed(java.awt.event.ActionEvent evt) {
if (Sistema.preguntar("Confirmar guardar")){
String consulta;
//variables para almacenar los valores del detalle, para su posterior envío a la BD
int temporalId=0;
String temporalNombre= "";
String temporalEstadoId = ""; //por si no seleccionó, para mandar null a la BD
//leyendo el Id e intentando convertirlo a entero
try {
temporalId= Integer.parseInt(municipioId.getText());
}catch(Exception ex){
Sistema.mensaje("Id no válido");
}
temporalNombre= nombre.getText().toUpperCase(); //leyendo el nombre y convirtiendo a mayúscula
//leyendo el estado
temporalEstadoId = "null"; //por si no seleccionó, para mandar null a la BD
if (estado.getSelectedItem()!=null){
temporalEstadoId=estado.getSelectedItem().toString();//si seleccionó, checar nombre*id
//buscar el id, partir del * + 1
temporalEstadoId = temporalEstadoId.substring(temporalEstadoId.indexOf("*")+1);
}
if (nuevoRegistro){
consulta = "insert into municipios (municipio_id, nombre, estado_id) values "+
"("+temporalId+
","+Sistema.cadenaBaseDatos(temporalNombre)+
","+temporalEstadoId+")";
if (Sistema.ejecuta(consulta)){
nuevoRegistro=false;
modelo.addRow(new Object[]{temporalId,temporalNombre, temporalEstadoId});
posicion = posicion +1;
actualizar();
}
}else{
consulta = "update municipios set"+
" municipio_id="+temporalId+
",nombre ="+Sistema.cadenaBaseDatos(temporalNombre)+
",estado_id="+temporalEstadoId+
" where municipio_id="+modelo.getValueAt(posicion, 0);
if (Sistema.ejecuta(consulta)){
modelo.setValueAt(temporalId, posicion, 0);
modelo.setValueAt(temporalNombre, posicion, 1);
modelo.setValueAt(temporalEstadoId, posicion, 2);
actualizar();
}
}
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón eliminar:


private void eliminarActionPerformed(java.awt.event.ActionEvent evt) {
if (Sistema.preguntar("Confirmar eliminar")){
String consulta = "delete municipios "+
" where municipio_id="+modelo.getValueAt(posicion, 0);

if (Sistema.ejecuta(consulta)){
modelo.removeRow(posicion);
tabla.setRowSelectionInterval(0, 0);
posicion=0;
actualizar();
}
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón deshacer:

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


if (nuevoRegistro && modelo.getRowCount()>0)
nuevoRegistro = false;
actualizar();// }

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón buscarMunicipioId:

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


String texto = Sistema.getTexto("Introduce el Id");
if (!texto.isEmpty()){
try {
int i = Integer.parseInt(texto);
texto = " where municipio_id="+i;
buscar(texto);
}
catch (Exception ex){

}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón buscarNombre:

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


String texto = Sistema.getTexto("Introduce el nombre o parte de él");
if (!texto.isEmpty()){
try {
texto = " where nombre like '%"+texto.trim().toUpperCase()+"%'";
buscar(texto);
}
catch (Exception ex){

}
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo
Proyecto Escolar usando Java- Netbeans

Dándole funcionalidad a botón buscarEstado:

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


String texto = Sistema.getTexto("Introduce el Id del estado");
if (!texto.isEmpty()){
try {
int i = Integer.parseInt(texto);
texto = " where estado_id="+i;
buscar(texto);
}
catch (Exception ex){

}
}
}

Tutorial de Programación en Bases de Datos UJAT - DAIS Profesor Dr. Herman Aguilar Mayo

Anda mungkin juga menyukai