Mantenimiento de Bases de Datos

Anuncio
1. Bienvenido al sistema de consultas sencillas con java.
Esta ventana le pide al usuario que digite el nombre y el root asignado por el administrador de la base de
datos, para poder tener acceso directo al menú principal del sistema.
Explicación:
Cuando el usuario digita el nombre del usuario, se obtiene automáticamente el root del usuario por medio de
una consulta SQL. Es por eso que cuando el usuario digita desde el teclado el root, se efectúa una
comparación entre las dos cadenas y si el resultado de dicha comparación es verdadero entonces se llamará al
menú principal.
Posibles errores:
• Si el usuario no digita el nombre, pero si digita el root; esto es lo que aparecerá.
• Aunque el root sea el correcto no se podrá acceder al menú principal, ya que como se explicó, al introducir
el nombre se genera la petición del root y la comparación no se puede efectuar.
Código fuente de SystemLoadMenu:
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
1
import www.conectaCon.javaSQL.almacen.USUARIO;
import www.conectaCon.javaSQL.almacen.CONSULTAS;
import www.conectaCon.javaSQL.almacen.AGREGACIONES;
import www.conectaCon.javaSQL.almacen.AGREGACIONES2;
import www.conectaCon.javaSQL.almacen.AGREGACIONES3;
import www.conectaCon.javaSQL.almacen.ELIMINACIONES;
import www.conectaCon.javaSQL.almacen.MODIFICACIONES;
import www.conectaCon.javaSQL.almacen.MODIFICACIONES2;
import www.conectaCon.javaSQL.almacen.MODIFICACIONES3;
public class SystemLoadMenu
{
public static void main(String [] args)
{
xwindow objnew_wind = new xwindow();
objnew_wind.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
objnew_wind.show();
System.gc();
}
}
class xwindow extends JFrame
{
USUARIO ToConecction = new USUARIO();
private JTextField textField1, textField2;
private String valor1, valor2;
private int contador = 1;
//constructor de la clase window
2
public xwindow()
{
setTitle("root Sistema");
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 330 / 2, 200 / 2);
setLocation( W1 / 3, H1 / 4);
setVisible( true );
//construccion de caja horizontal superior
JLabel label1 = new JLabel("Name:");
textField1 = new JTextField( 10 );
textField1.setMaximumSize(textField1.getPreferredSize());
Box hbox1 = Box.createHorizontalBox();
hbox1.add( label1 );
hbox1.add( Box.createHorizontalStrut( 10 ));
hbox1.add( textField1 );
//construccion de caja horizontal del medio
JLabel label2 = new JLabel("Root: ");
textField2 = new JTextField( 10 );
textField2.setMaximumSize(textField2.getPreferredSize());
Box hbox2 = Box.createHorizontalBox();
hbox2.add( label2 );
hbox2.add( Box.createHorizontalStrut( 11 ));
hbox2.add( textField2 );
3
EventoInterno A = new EventoInterno();
textField1.addActionListener( A );
textField2.addActionListener( A );
//Anadir tres cajas horizontal dentro de una caja vertical
Box vbox = Box.createVerticalBox();
vbox.add(hbox1);
vbox.add(hbox2);
vbox.add(Box.createGlue());
Container contentPane1 = getContentPane();
contentPane1.add(vbox, BorderLayout.CENTER);
} // end constructor
//clase interna
private class EventoInterno implements ActionListener
{
//inicio
//procesar los eventos de los campos de texto.
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == textField1){
valor1 = evento.getActionCommand();
textField1.setEditable( false );
}
if ( evento.getSource() == textField2){
valor2 = evento.getActionCommand();
if( valor2.equals("") || valor2.equals(null)){
JOptionPane.showMessageDialog(null,"¡Debes escribir el nombre y el root!","ERROR INESPARADO",
JOptionPane.ERROR_MESSAGE);
4
System.exit(0); }
sqlconecta();
}
}
private void sqlconecta()
{
//−
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
StringBuffer resultado2 = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT root FROM root WHERE nombre = '" + valor1
+ "'");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = 1;
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ));
}
resultado2.append(valor2);
String uno = new String (resultado.toString());
String dos = new String (resultado2.toString());
if (uno.equalsIgnoreCase( dos ))
{
textField2.setEditable( false );
5
MENUX objver = new MENUX();
objver.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objver.show();
}
else
{
JOptionPane.showMessageDialog(null, "root introducido no identificado; reescriba la opcion por favor");
contador += 1;
if (contador == 3)
{
textField2.setEditable( false );
JOptionPane.showMessageDialog(null, "root no identificado, por favor consulte con el administrador del
software\n Puede ver la opcion de ayuda para mayor informacion", "info",
JOptionPane.ERROR_MESSAGE);
System.exit( 0 );
}}}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
//Clase Manu Principal
class MENUX extends JFrame
//inicio MENUX
{
6
public MENUX()
{
super("MENU OPCIONES CONSULTAS SQL SERVER 2000");
Toolkit kit2 = Toolkit.getDefaultToolkit();
Dimension mascara2 = kit2.getScreenSize();
int Hs = mascara2.height;
int Ws = mascara2.width;
setSize( 600, 500);
setLocation( Ws / 5, Hs / 4);
setVisible( true );
//Menu
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'a' );
JMenu menuArchivo2 = new JMenu(" Consultar ");
menuArchivo2.setMnemonic( 'z' );
JMenuItem CONSULTA = new JMenuItem("Consultar\nOpcion: De todo los registros");
CONSULTA.setMnemonic( 'C' );
menuArchivo2.add( CONSULTA );
CONSULTA.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
CONSULTAS objx = new CONSULTAS();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
7
});
JMenu menuArchivo3 = new JMenu(" Insertar ");
menuArchivo3.setMnemonic( 'I' );
JMenuItem INSERTAR = new JMenuItem("Deudores");
INSERTAR.setMnemonic( 'D' );
menuArchivo3.add( INSERTAR );
INSERTAR.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
AGREGACIONES objx = new AGREGACIONES();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
});
JMenuItem INSERTAR2 = new JMenuItem("Fiadores");
INSERTAR2.setMnemonic( 'F' );
menuArchivo3.add( INSERTAR2 );
INSERTAR2.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
AGREGACIONES2 objx = new AGREGACIONES2();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
8
});
JMenuItem INSERTAR3 = new JMenuItem("Prestamos");
INSERTAR3.setMnemonic( 'P' );
menuArchivo3.add( INSERTAR3 );
INSERTAR3.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
AGREGACIONES3 objx = new AGREGACIONES3();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
});
JMenu menuArchivo4 = new JMenu(" Eliminar ");
menuArchivo4.setMnemonic( 'E' );
JMenuItem ELIMINAR = new JMenuItem("Eliminar \nOpcion: De todos los registros");
ELIMINAR.setMnemonic( 'E' );
menuArchivo4.add( ELIMINAR );
ELIMINAR.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
ELIMINACIONES objx = new ELIMINACIONES();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
9
});
JMenu menuArchivo5 = new JMenu(" Modificar ");
menuArchivo5.setMnemonic( 'M' );
JMenuItem MODIFICAR = new JMenuItem("Deudores");
MODIFICAR.setMnemonic( 'D' );
menuArchivo5.add( MODIFICAR );
MODIFICAR.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
MODIFICACIONES objx = new MODIFICACIONES();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
});
JMenuItem MODIFICAR2 = new JMenuItem("Fiadores");
MODIFICAR2.setMnemonic( 'F' );
menuArchivo5.add( MODIFICAR2 );
MODIFICAR2.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
MODIFICACIONES2 objx = new MODIFICACIONES2();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
10
});
JMenuItem MODIFICAR3 = new JMenuItem("Prestamos");
MODIFICAR3.setMnemonic( 'P' );
menuArchivo5.add( MODIFICAR3 );
MODIFICAR3.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
MODIFICACIONES3 objx = new MODIFICACIONES3();
objx.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objx.show();
System.gc();
}
});
JMenuItem INFO = new JMenuItem("Informacion");
INFO.setMnemonic( 'I' );
menuArchivo.add( INFO );
INFO.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(null,"UNIVERSIDAD TECNOLOGICA DE EL
SALVADOR\nMETERIA: PROGRAMACION 4\n\nProgramadores:\nHernandez Henriquez, Jaime Rolando
\nLopez Angel, Jorge Enrique \nMonjaraz, Juan Carlos \nQuintanilla Orantes, Carlos de Jasús\nRamírez
Valiente, Mario Josué \nVelasco Estrada, Oscar Marcelo \nVentura Benítez, David Antonio ");
}
});
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'S' );
menuArchivo.add( elementoSalir );
11
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(MENUX.this,"Close windows now. ok!");
System.exit( 0 );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
barra.add( menuArchivo2 );
barra.add( menuArchivo3 );
barra.add( menuArchivo4 );
barra.add( menuArchivo5 );
}//constructor fin
public static void main(String [] args)
{
MENUX objver = new MENUX();
objver.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objver.show();
System.gc();
}
}
2. Acceso al menú principal
12
− File
File opción 1: Información
Esta parte del menú permite poder obtener información del personal encargado del desarrollo y
mantenimiento del software.
File opción 2: Salir
Parte que mata a la ventana de menú.
− Consultar
Consultar opción 1 Consultar Opción: De todos los registros
Esta opción permitirá hacer consultas a las tres tablas que componen la DB. Deudores, fiadores y préstamos.
− Insertar
Esta opción permitirá insertar un registro a las tres tablas (por separado) que componen la DB. Deudores,
fiadores y préstamos, si por acaso desea insertar a más de un nuevo deudor, fiador o préstamo entonces
solamente cierre la ventana y abra una ventana nueva desde el menú principal.
− Eliminar
Eliminar opción 1 Eliminar Opción: De todos los registros
Esta opción permitirá eliminar registros a las tres tablas que componen la DB.
− Modificar
Esta opción permitirá modificar registros a las tres tablas (por separado) que componen la DB.
Código fuente de xmenu:
El código fuente de xmenu ( El menú principal ) se encuentra en el archivo que contiene a la clase
LoadSystemMenu, ver código fuente de este para mayor información.
3. Acceso a consultas
DEUDORES
13
Explicación:
Al seleccionar la opción consulta del xmenu , se desplegará el formulario que se presenta arriba, en donde el
usuario podrá seleccionar la tabla a la cual le desea hacer la consulta.
En el ejemplo de la ilustración que tenemos arriba se tiene habilitado la consulta a la tabla deudores, la
interfaz contiene dos botones para interactuar el botón salir y el botón Consultar. Si el usuario hace clic en el
botón consultar se desplegará una consulta general de todos los registros contenidos en la tabla, ahora bien si
el usuario quiere una consulta específica debe digitar un código de deudor existente y presionar Enter en ese
instante se desplegará las siguientes pantallas:
14
15
En donde se reflejan los datos correspondientes a la información solicitada. Una vez realizada la consulta se
puede proceder a cerrar la ventana con el botón salir para volver a la opciones anteriores.
16
FIADORES
La consulta para la tabla Fiadores no difiere de la que se explicó anteriormente, en si el funcionamiento es el
mismo, un botón de consulta genérico ( botón consultar ) una caja de texto para realizar una búsqueda en
especial y un botón de salida de la opción.
La pantalla de arriba y las subsiguientes muestran los resultados de las pruebas hechas en esta opción:
17
PRESTAMOS
18
19
Para la tabla prestamos se tiene el mismo tipo de interfaz diseñado para las consultas, el pantallas anteriores se
muestra el resultado de las consultas hechas a la tabla en los dos modos realizados ( consulta general y
consulta de un registro en especial ).
Código fuente de CONSULTAS:
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class CONSULTAS extends JFrame{
private JPanel xpanel, ypanel, zpanel;
private JTextField wcod, wcod2, wcod3;
20
private JLabel xcod, xcod2, xcod3;
private String valor1;
private ActionListener closex;
private JButton xsalir, xconsulta, xconsulta2, xconsulta3;
public CONSULTAS()
{
// Inicio constructor
super ("Generador de cosultas a DEUDORES, FIADORES Y PRESTAMOS");
// Creacion de objeto JTabbedPane
JTabbedPane xtpanel = new JTabbedPane();
// creacion de Menu y submenus...
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'a' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'b' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(CONSULTAS.this,"Ejemplo de como consultar a las tablas DEUDORES,
FIADORES y PRESTAMOS");
}
});
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
21
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(CONSULTAS.this,"Close window now!");
JButton xx = new JButton();
xx.removeActionListener( closex );
dispose();
xx.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
// crear objeto JLabel
xcod = new JLabel("CODIGO DEUDOR:");
xcod.setToolTipText("Digite el código del registro que deceas consultar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JLabel para el segundo contenedor
xcod2 = new JLabel("CODIGO FIADOR:");
xcod2.setToolTipText("Digite el código del registro que deceas consultar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JLabel para el tercer contenedor
xcod3 = new JLabel("CODIGO DEUDOR:");
xcod3.setToolTipText("Digite el código del registro que deceas consultar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JTextField
wcod = new JTextField( 10 );
// crear objeto JTextField para el segundo contenedor
wcod2 = new JTextField( 10 );
22
// crear objeto JTextField para el tercer contenedor
wcod3 = new JTextField( 10 );
// Crear objeto de tipo clase EventoInterno...
EventoInterno objDeTexto = new EventoInterno();
wcod.addActionListener( objDeTexto );
// Crear objeto de tipo clase EventoInterno2...
EventoInterno2 objDeTexto2 = new EventoInterno2();
wcod2.addActionListener( objDeTexto2 );
// Crear objeto de tipo clase EventoInterno3...
EventoInterno3 objDeTexto3 = new EventoInterno3();
wcod3.addActionListener( objDeTexto3 );
// crear Boton
xsalir = new JButton( "Salir" );
xconsulta = new JButton( "Consultar" );
// crear boton consulta para segundo contenedor
xconsulta2 = new JButton( "Consultar" );
// crear boton consulta para tercer contenedor
xconsulta3 = new JButton( "Consultar" );
// Crear objeto de tipo clase EventoInternoBoton
EventoInternoBoton objBoton = new EventoInternoBoton();
xsalir.addActionListener( objBoton );
xconsulta.addActionListener( objBoton );
// Crear objeto de tipo clase EventoInternoBoton2
EventoInternoBoton2 objBoton2 = new EventoInternoBoton2();
xconsulta2.addActionListener( objBoton2 );
// Crear objeto de tipo clase EventoInternoBoton3
23
EventoInternoBoton3 objBoton3 = new EventoInternoBoton3();
xconsulta3.addActionListener( objBoton3 );
xpanel = new JPanel();
xpanel.add( xcod );
xpanel.add( wcod );
xpanel.add( xsalir );
xpanel.add( xconsulta );
ypanel = new JPanel();
ypanel.add( xcod2 );
ypanel.add( wcod2 );
ypanel.add( xconsulta2 );
zpanel = new JPanel();
zpanel.add( xcod3 );
zpanel.add( wcod3 );
zpanel.add( xconsulta3 );
xtpanel.addTab( "DEUDORES", null, xpanel, "Este panel contiene informacion sobre los registros contenidos
en la tabla de Deudores" );
xtpanel.addTab( "FIADORES", null, ypanel, "Este panel contiene informacion sobre los registros contenidos
en la tabla de Fiadores" );
xtpanel.addTab( "PRESTAMOS", null, zpanel, "Este panel contiene informacion sobre los registros
contenidos en la tabla de Prestamos" );
// Agregar objeto JTabbedPane al contenedor
getContentPane().add( xtpanel );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 800, 500);
24
setLocation( W1 / 7, H1 / 6);
setVisible( true );
// Fin constructor
}
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno...
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador = 1;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( false );
wcod.setVisible( false );
wcod.setEnabled( false );
xcod.setVisible( false );
xsalir.setVisible( false );
}
contador += 1;
if (contador == 2)
{
JOptionPane.showMessageDialog(null,"Oculte now.");
wcod.setVisible( false );
xcod.setVisible( false );
25
}
JOptionPane.showMessageDialog(null, "\n CODIGO: " + valor1 );
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM DEUDORES WHERE
CODDEUDOR = '" + valor1 + "'");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(metaDato.getColumnName( i ) + "\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
xpanel.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
26
}
}
}
//−
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno2...
private class EventoInterno2 implements ActionListener
{
public USUARIO ToConecction2 = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador2 = 1;
public void actionPerformed( ActionEvent evento2)
{
if ( evento2.getSource() == wcod2 ){
valor1 = evento2.getActionCommand();
wcod2.setEditable( false );
}
contador2 += 1;
if (contador2 == 2)
{
JOptionPane.showMessageDialog(null,"Oculte now.");
wcod2.setVisible( false );
xcod2.setVisible( false );
}
JOptionPane.showMessageDialog(null, "\n CODIGO: " + valor1 );
try
{
27
Statement insert2 = ToConecction2.conexion.createStatement();
StringBuffer resultado2 = new StringBuffer();
ResultSet conjuntoResultado2 = insert2.executeQuery("SELECT *FROM FIADORES WHERE
CODFIADOR = '" + valor1 + "'");
ResultSetMetaData metaDato2 = conjuntoResultado2.getMetaData();
int numeroColumnas2 = metaDato2.getColumnCount();
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(metaDato2.getColumnName( i ) + "\t" );
resultado2.append( "\n" );
while ( conjuntoResultado2.next() )
{
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(conjuntoResultado2.getObject( i ) + "\t");
resultado2.append( "\n" );
}
JTextArea areaTexto2 = new JTextArea( resultado2.toString() );
ypanel.add( new JScrollPane ( areaTexto2 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
//−
28
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno3...
private class EventoInterno3 implements ActionListener
{
public USUARIO ToConecction3 = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador3 = 1;
public void actionPerformed( ActionEvent evento3)
{
if ( evento3.getSource() == wcod3 ){
valor1 = evento3.getActionCommand();
wcod3.setEditable( false );
}
contador3 += 1;
if (contador3 == 2)
{
JOptionPane.showMessageDialog(null,"Oculte now.");
wcod3.setVisible( false );
xcod3.setVisible( false );
}
JOptionPane.showMessageDialog(null, "\n CODIGO: " + valor1 );
try
{
Statement insert3 = ToConecction3.conexion.createStatement();
StringBuffer resultado3 = new StringBuffer();
ResultSet conjuntoResultado3 = insert3.executeQuery("SELECT *FROM PRESTAMOS WHERE
CODDEUDOR = '" + valor1 + "'");
ResultSetMetaData metaDato3 = conjuntoResultado3.getMetaData();
29
int numeroColumnas3 = metaDato3.getColumnCount();
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(metaDato3.getColumnName( i ) + "\t" );
resultado3.append( "\n" );
while ( conjuntoResultado3.next() )
{
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(conjuntoResultado3.getObject( i ) + "\t");
resultado3.append( "\n" );
}
JTextArea areaTexto3 = new JTextArea( resultado3.toString() );
zpanel.add( new JScrollPane ( areaTexto3 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
//−
//−Cuerpo de la clase interna; para los eventos de los botones. Clase interna privada EventoInternoBoton...
private class EventoInternoBoton implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
30
private int contador = 0;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
else if (evento.getSource() == xconsulta)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador += 1;
if (contador == 2)
{
xconsulta.setVisible( false );
}
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM DEUDORES");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
31
resultado.append(metaDato.getColumnName( i )+"\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
xpanel.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
//−
//−Cuerpo de la clase interna; para evento boton. Clase interna privada EventoInternoBoton2...
private class EventoInternoBoton2 implements ActionListener
{
public USUARIO ToConecction2 = new USUARIO();
private int contador2 = 0;
32
public void actionPerformed( ActionEvent evento2)
{
if (evento2.getSource() == xconsulta2)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador2 += 1;
if (contador2 == 2)
{
xconsulta2.setVisible( false );
}
try
{
Statement insert2 = ToConecction2.conexion.createStatement();
StringBuffer resultado2 = new StringBuffer();
ResultSet conjuntoResultado2 = insert2.executeQuery("SELECT *FROM FIADORES");
ResultSetMetaData metaDato2 = conjuntoResultado2.getMetaData();
int numeroColumnas2 = metaDato2.getColumnCount();
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(metaDato2.getColumnName( i )+"\t" );
resultado2.append( "\n" );
while ( conjuntoResultado2.next() )
{
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(conjuntoResultado2.getObject( i ) + "\t");
resultado2.append( "\n" );
}
33
JTextArea areaTexto2 = new JTextArea( resultado2.toString() );
ypanel.add( new JScrollPane ( areaTexto2 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
//−
//−Cuerpo de la clase interna; para evento boton. Clase interna privada EventoInternoBoton3...
private class EventoInternoBoton3 implements ActionListener
{
public USUARIO ToConecction3 = new USUARIO();
private int contador3 = 0;
public void actionPerformed( ActionEvent evento3)
{
if (evento3.getSource() == xconsulta3)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador3 += 1;
if (contador3 == 2)
{
34
xconsulta3.setVisible( false );
}
try
{
Statement insert3 = ToConecction3.conexion.createStatement();
StringBuffer resultado3 = new StringBuffer();
ResultSet conjuntoResultado3 = insert3.executeQuery("SELECT *FROM PRESTAMOS");
ResultSetMetaData metaDato3 = conjuntoResultado3.getMetaData();
int numeroColumnas3 = metaDato3.getColumnCount();
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(metaDato3.getColumnName( i )+"\t" );
resultado3.append( "\n" );
while ( conjuntoResultado3.next() )
{
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(conjuntoResultado3.getObject( i ) + "\t");
resultado3.append( "\n" );
}
JTextArea areaTexto3 = new JTextArea( resultado3.toString() );
zpanel.add( new JScrollPane ( areaTexto3 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
35
}
}
}
}
//−
public static void main( String [] args)
{
// Inicio principal
CONSULTAS obj = new CONSULTAS();
obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
obj.show();
// Fin principal
}
}
3. Insertar en tablas. INSERTAR EN TABLA DEUDORES
36
Las pantallas que se muestran arriba es la interfaz para que el usuario pueda agregar un nuevo registro a la
tabla deudores, esta consta de todos los campos requeridos con los cuales el usuario puede interactuar, debe
agregar el código respectivo , el nombre, apellido, numero de DUI, etc; estos son capturados por medio de los
cuadros de textos y enviados en una query a la base de datos concatenados en una string de sentencia SQL , si
todo procede normal, se desplegaran, las pantallas que se encuentran en la esquina superior derecha,
mostrando al usuario los datos que ha ingresado (primera pantalla), y el resultado final enviando un mensaje
de que los datos han sido guardados (insertados) satisfactoriamente (segundo pantalla), luego se procede a
cerrar la opción de insertar para la tabla deudores (pantalla final).
CODIGO FUENTE DE LA OPCION INSERTAR (para tabla deudores)
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
37
public class AGREGACIONES extends JFrame{
private JPanel xpanel;
private JTextField wcod, wnombre, wapell, wdui, wnit, wtel, wsal;
private JLabel xcod, xnombre, xapell, xdui, xnit, xtel, xsal;
private String valor1, valor2, valor3, valor4, valor5, valor6, valor7;
private ActionListener closex;
private JButton xsalir;
public AGREGACIONES()
{
// Inicio constructor
super ("DEUDORES");
// Creacion de objeto JTabbedPane
JTabbedPane xtpanel = new JTabbedPane();
// creacion de Menu y submenus...
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'F' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'A' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES.this,"Ejemplo de como agregar un registro a la tabla
DEUDORES");
}
});
JMenuItem elementoSalir = new JMenuItem("Salir");
38
elementoSalir.setMnemonic( 'S' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES.this,"Close windows now. ok!");
JButton btnAnonime = new JButton();
btnAnonime.removeActionListener( closex );
dispose();
btnAnonime.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
// creacion objetos para contenedor 1
xcod = new JLabel("CODIGO DEUDOR:");
xcod.setToolTipText("Debe digitar el código del Deudor. ¡Recuerde press ENTER luego de digitar un valor
nuevo !");
wcod = new JTextField( 10 );
xnombre = new JLabel("NOMBRE:");
xnombre.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo !");
wnombre = new JTextField( 10 );
xapell = new JLabel("APELLIDO:");
xapell.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wapell = new JTextField( 10 );
xdui = new JLabel("DUI:");
39
xdui.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
wdui = new JTextField( 10 );
xnit = new JLabel("NIT:");
xnit.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
wnit = new JTextField( 10 );
xtel = new JLabel("TELEFONO:");
xtel.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wtel = new JTextField( 10 );
xsal = new JLabel("SALARIO:");
xsal.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wsal = new JTextField( 10 );
// crear Boton
xsalir = new JButton( "Salir" );
EventoInternoBoton objBtnSalir = new EventoInternoBoton();
xsalir.addActionListener( objBtnSalir );
EventoInterno objtxt = new EventoInterno();
wcod.addActionListener( objtxt );
wnombre.addActionListener( objtxt );
wapell.addActionListener( objtxt );
wdui.addActionListener( objtxt );
wnit.addActionListener( objtxt );
wtel.addActionListener( objtxt );
wsal.addActionListener( objtxt );
xpanel = new JPanel();
xpanel.add(( xcod ), BorderLayout.CENTER);
xpanel.add(( wcod ), BorderLayout.CENTER);
40
xpanel.add(( xnombre ), BorderLayout.CENTER);
xpanel.add(( wnombre ), BorderLayout.CENTER);
xpanel.add(( xapell ), BorderLayout.CENTER);
xpanel.add(( wapell ), BorderLayout.CENTER);
xpanel.add(( xdui ), BorderLayout.CENTER);
xpanel.add(( wdui ), BorderLayout.CENTER);
xpanel.add(( xnit ), BorderLayout.CENTER);
xpanel.add(( wnit ), BorderLayout.CENTER);
xpanel.add(( xtel ), BorderLayout.CENTER);
xpanel.add(( wtel ), BorderLayout.CENTER);
xpanel.add(( xsal ), BorderLayout.CENTER);
xpanel.add(( wsal ), BorderLayout.CENTER);
xpanel.add(( xsalir ), BorderLayout.CENTER);
xtpanel.addTab( "DEUDORES", null, xpanel, "Este panel contiene informacion sobre los registros contenidos
y a eliminar en la tabla de Deudores" );
// Agregar objeto JTabbedPane al contenedor
getContentPane().add( xtpanel );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 140, 500);
setLocation( W1 / 7, H1 / 6);
setVisible( true );
// Fin constructor
}
//−−
41
//clase interna privada EventoInterno...
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
//procesar los eventos de los campos de texto.
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( false );
wcod.setText("");
}
else if ( evento.getSource() == wnombre )
{
valor2 = evento.getActionCommand();
wnombre.setEditable( false );
wnombre.setText("");
}
else if ( evento.getSource() == wapell )
{
valor3 = evento.getActionCommand();
wapell.setEditable( false );
wapell.setText("");
}
else if ( evento.getSource() == wdui )
{
42
valor4 = evento.getActionCommand();
wdui.setEditable( false );
wdui.setText("");
}
else if ( evento.getSource() == wnit )
{
valor5 = evento.getActionCommand();
wnit.setEditable( false );
wnit.setText("");
}else if ( evento.getSource() == wtel)
{
valor6 = evento.getActionCommand();
wtel.setEditable( false );
wtel.setText("");
}
else if ( evento.getSource() == wsal)
{
valor7 = evento.getActionCommand();
wsal.setEditable( false );
wsal.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO DEUDOR: " + valor1 + "\nNOMBRE: " + valor2 +
"\nAPELLIDO: " + valor3 + "\nDUI: " + valor4 + "\nNIT: " + valor5 + "\nTELEFONO:" + valor6
+"\nSALARIO:" + valor7 );
try
{
//Forma para crear una sentencia SQL
43
Statement insert = ToConecction.conexion.createStatement();
String ins = ("INSERT INTO DEUDORES " + " VALUES( '" + valor1.toString() + "', '" + valor2.toString() +
"', '" + valor3.toString() + "', '" + valor4.toString() + "', '" + valor5.toString() + "', '" + valor6.toString() + "', '"
+ valor7.toString() + "'" + ")" );
insert.executeUpdate(ins);
insert.close();
JOptionPane.showMessageDialog(null,"Nuevo registro agregado con exito.");} //end try
catch(SQLException x)
{
JOptionPane.showMessageDialog(null," error inesperado " + x.getMessage());
}}}
//−−
//−−
//clase interna privada EventoInternoBoton...
private class EventoInternoBoton implements ActionListener
{
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}}}
//−−
public static void main( String [] args)
44
{
AGREGACIONES obj = new AGREGACIONES();
obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
obj.show();
}}
INSERTAR EN LA TABLA FIADORES
Ahora tenemos la opción de inserción para la tabla fiadores, consta en la primera pantalla (superior izquierda)
de los campos respectivos a la tabla los cuales el usuario digitará los campos que serán capturado y
posteriormente insertados en la tabla fiadores, al finalizar el usuario la digitación y llenado de los campos
mostrados en la interfaz del formulario, se le mostraran los datos que, a continuación, serán guardados en la
tabla, a su vez se despliega un mensaje ratificando la inserción satisfactoria de los registros.
Codigo fuente para la opción de Insertar ( para tabla fiadores)
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
45
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class AGREGACIONES2 extends JFrame{
private JPanel xpanel;
private JTextField wcod, wnombre, wapell, wdui, wnit, wtel, wsal;
private JLabel xcod, xnombre, xapell, xdui, xnit, xtel, xsal;
private String valor1, valor2, valor3, valor4, valor5, valor6, valor7;
private ActionListener closex;
private JButton xsalir;
public AGREGACIONES2()
{
super ("FIADORES");
JTabbedPane xtpanel = new JTabbedPane();
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'a' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'b' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES2.this,"Ejemplo de como agregar un registro a la tabla
FIADORES");
}
});
46
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES2.this,"Close windows now. ok!");
JButton btnAnonime = new JButton();
btnAnonime.removeActionListener( closex );
dispose();
btnAnonime.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
xcod = new JLabel("CODIGO FIADOR:");
xcod.setToolTipText("Debe digitar el código del Fiador. ¡Recuerde press ENTER luego de digitar un valor
nuevo !");
wcod = new JTextField( 10 );
xnombre = new JLabel("NOMBRE:");
xnombre.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo !");
wnombre = new JTextField( 10 );
xapell = new JLabel("APELLIDO:");
xapell.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wapell = new JTextField( 10 );
xdui = new JLabel("DUI:");
47
xdui.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
wdui = new JTextField( 10 );
xnit = new JLabel("NIT:");
xnit.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
wnit = new JTextField( 10 );
xtel = new JLabel("TELEFONO:");
xtel.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wtel = new JTextField( 10 );
xsal = new JLabel("SALARIO:");
xsal.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wsal = new JTextField( 10 );
xsalir = new JButton( "Salir" );
EventoInternoBoton objBtnSalir = new EventoInternoBoton();
xsalir.addActionListener( objBtnSalir );
EventoInterno objtxt = new EventoInterno();
wcod.addActionListener( objtxt );
wnombre.addActionListener( objtxt );
wapell.addActionListener( objtxt );
wdui.addActionListener( objtxt );
wnit.addActionListener( objtxt );
wtel.addActionListener( objtxt );
wsal.addActionListener( objtxt );
xpanel = new JPanel();
xpanel.add(( xcod ), BorderLayout.CENTER);
xpanel.add(( wcod ), BorderLayout.CENTER);
xpanel.add(( xnombre ), BorderLayout.CENTER);
48
xpanel.add(( wnombre ), BorderLayout.CENTER);
xpanel.add(( xapell ), BorderLayout.CENTER);
xpanel.add(( wapell ), BorderLayout.CENTER);
xpanel.add(( xdui ), BorderLayout.CENTER);
xpanel.add(( wdui ), BorderLayout.CENTER);
xpanel.add(( xnit ), BorderLayout.CENTER);
xpanel.add(( wnit ), BorderLayout.CENTER);
xpanel.add(( xtel ), BorderLayout.CENTER);
xpanel.add(( wtel ), BorderLayout.CENTER);
xpanel.add(( xsal ), BorderLayout.CENTER);
xpanel.add(( wsal ), BorderLayout.CENTER);
xpanel.add(( xsalir ), BorderLayout.CENTER);
xtpanel.addTab( "FIADORES", null, xpanel, "Este panel contiene informacion sobre los registros contenidos
y a eliminar en la tabla de Fiadores" );
getContentPane().add( xtpanel );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 140, 500);
setLocation( W1 / 5, H1 / 6);
setVisible( true );
}
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
public void actionPerformed( ActionEvent evento)
49
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( false );
wcod.setText("");
}
else if ( evento.getSource() == wnombre )
{
valor2 = evento.getActionCommand();
wnombre.setEditable( false );
wnombre.setText("");
}
else if ( evento.getSource() == wapell )
{
valor3 = evento.getActionCommand();
wapell.setEditable( false );
wapell.setText("");
}
else if ( evento.getSource() == wdui )
{
valor4 = evento.getActionCommand();
wdui.setEditable( false );
wdui.setText("");
}
else if ( evento.getSource() == wnit )
{
50
valor5 = evento.getActionCommand();
wnit.setEditable( false );
wnit.setText("");
}else if ( evento.getSource() == wtel)
{
valor6 = evento.getActionCommand();
wtel.setEditable( false );
wtel.setText("");
}
else if ( evento.getSource() == wsal)
{
valor7 = evento.getActionCommand();
wsal.setEditable( false );
wsal.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO FIADOR: " + valor1 + "\nNOMBRE: " + valor2 +
"\nAPELLIDO: " + valor3 + "\nDUI: " + valor4 + "\nNIT: " + valor5 + "\nTELEFONO:" + valor6
+"\nSALARIO:" + valor7);
try
{
Statement insert = ToConecction.conexion.createStatement();
String ins = ("INSERT INTO FIADORES " + " VALUES( '" + valor1.toString() + "', '" + valor2.toString() +
"', '" + valor3.toString() + "', '" + valor4.toString() + "', '" + valor5.toString() + "', '" + valor6.toString() + "', '"
+ valor7.toString() +"'" + ")" );
insert.executeUpdate(ins);
insert.close();
JOptionPane.showMessageDialog(null,"Nuevo registro agregado con exito.");
}
51
catch(SQLException x)
{
JOptionPane.showMessageDialog(null," error inesperado " + x.getMessage());
}}}
private class EventoInternoBoton implements ActionListener
{
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
}
}
public static void main( String [] args)
{
AGREGACIONES2 obj = new AGREGACIONES2();
obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
obj.show();
System.gc();
}
}
INSERTAR EN LA TABLA PRESTAMOS
52
Aquí se presenta la opción insertar para la tabla deudores y como se puede observar en el formulario se consta
de todos los campos de la tabla para que el usuario pueda realizar el ingreso de los nuevos registros a la base
de datos, el funcionamiento procede de la misma forma que con las dos tablas anteriores, una vez finalizado el
llenado de campos del formulario el usuario procede a observar el mensaje de confirmación de los datos que
han sido ingresados al sistema así como la ratificación de que el proceso se ha realizado con éxito.
Codigo fuente para insertar en la tabla prestamos:
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class AGREGACIONES3 extends JFrame
{
53
private JPanel xpanel;
private JTextField wcod, wcod2, wcredi, wmon, wtint, wpla, wfpre, wsald;
private JLabel xcod, xcod2, xcredi, xtint, xmon, xpla, xfpre, xsald;
private String valor1, valor2, valor3, valor4, valor5, valor6, valor7, valor8;
private ActionListener closex;
private JButton xsalir;
public AGREGACIONES3()
{
// Inicio constructor
super ("PRESTAMOS");
// Creacion de objeto JTabbedPane
JTabbedPane xtpanel = new JTabbedPane();
// creacion de Menu y submenus...
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'a' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'b' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES3.this,"Ejemplo de como agregar un registro a la tabla
PRESTAMOS");
}
});
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'S' );
54
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(AGREGACIONES3.this,"Close windows now. ok!");
JButton btnAnonime = new JButton();
btnAnonime.removeActionListener( closex );
dispose();
btnAnonime.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
// creacion objetos para contenedor 1
xcod = new JLabel("CODIGO DEUDOR");
xcod.setToolTipText("Debe digitar el código del Fiador. ¡Recuerde press ENTER luego de digitar un valor
nuevo !");
wcod = new JTextField( 10 );
xcod2 = new JLabel("CODIGO FIADOR");
xcod2.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo !");
wcod2 = new JTextField( 10 );
xcredi = new JLabel("TIPO CREDITO");
xcredi.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wcredi = new JTextField( 10 );
xtint = new JLabel("TAZA INTERES");
xtint.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
55
wtint = new JTextField( 10 );
xmon = new JLabel("MONTO");
xmon.setToolTipText("¡-Recuerde press ENTER luego de digitar un valor nuevo!");
wmon = new JTextField( 10 );
xpla = new JLabel("PLAZO");
xpla.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wpla = new JTextField( 10 );
xfpre = new JLabel("FECHA PREST");
xfpre.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wfpre = new JTextField( 10 );
xsald = new JLabel("SALDO");
xsald.setToolTipText("-Recuerde press ENTER luego de digitar un valor nuevo!");
wsald = new JTextField( 10 );
// crear Boton
xsalir = new JButton( "Salir" );
EventoInternoBoton objBtnSalir = new EventoInternoBoton();
xsalir.addActionListener( objBtnSalir );
EventoInterno objtxt = new EventoInterno();
wcod.addActionListener( objtxt );
wcod2.addActionListener( objtxt );
wcredi.addActionListener( objtxt );
wtint.addActionListener( objtxt );
wmon.addActionListener( objtxt );
wpla.addActionListener( objtxt );
wfpre.addActionListener( objtxt );
wsald.addActionListener( objtxt );
56
xpanel = new JPanel();
xpanel.add( xcod );
xpanel.add( wcod );
xpanel.add( xcod2 );
xpanel.add( wcod2 );
xpanel.add( xcredi );
xpanel.add( wcredi );
xpanel.add( xtint );
xpanel.add( wtint );
xpanel.add( xmon );
xpanel.add( wmon );
xpanel.add( xpla );
xpanel.add( wpla );
xpanel.add( xfpre );
xpanel.add( wfpre );
xpanel.add( xsald );
xpanel.add( wsald );
xpanel.add( xsalir);
xtpanel.addTab( "PRESTAMOS", null, xpanel, "Este panel contiene informacion sobre los registros
contenidos y a eliminar en la tabla de Prestamos" );
// Agregar objeto JTabbedPane al contenedor
getContentPane().add( xtpanel );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 140, 500);
57
setLocation( W1 / 5, H1 / 6);
setVisible( true );
// Fin constructor
}
//−−
//clase interna privada EventoInterno...
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
//procesar los eventos de los campos de texto.
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( false );
wcod.setText("");
}
else if ( evento.getSource() == wcod2 )
{
valor2 = evento.getActionCommand();
wcod2.setEditable( false );
wcod2.setText("");
}
else if ( evento.getSource() == wcredi )
{
valor3 = evento.getActionCommand();
58
wcredi.setEditable( false );
wcredi.setText("");
}
else if ( evento.getSource() == wtint )
{
valor4 = evento.getActionCommand();
wtint.setEditable( false );
wtint.setText("");
}
else if ( evento.getSource() == wmon )
{
valor5 = evento.getActionCommand();
wmon.setEditable( false );
wmon.setText("");
}else if ( evento.getSource() == wpla)
{
valor6 = evento.getActionCommand();
wpla.setEditable( false );
wpla.setText("");
}
else if ( evento.getSource() == wfpre)
{
valor7 = evento.getActionCommand();
wfpre.setEditable( false );
wfpre.setText("");
}
59
else if ( evento.getSource() == wsald)
{
valor8 = evento.getActionCommand();
wsald.setEditable( false );
wsald.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO DEUDOR: " + valor1 + "\nCODIGO FIADOR: " +
valor2 + "\nCREDITO: " + valor3 + "\nINTERES: " + valor4 + "\nMONTO: " + valor5 + "\nPLAZO:" +
valor6 +"\nFECHA PREST:" + valor7 +"\nSALDO" + valor8);
try
{
//Forma para crear una sentencia SQL
Statement insert = ToConecction.conexion.createStatement();
String ins = ("INSERT INTO PRESTAMOS " + " VALUES( '" + valor1.toString() + "', '" + valor2.toString()
+ "', '" + valor3.toString() + "', '" + valor4.toString() + "', '" + valor5.toString() + "', '" + valor6.toString() + "',
'" + valor7.toString() + "', '" + valor8.toString() + "'" + ")" );
insert.executeUpdate(ins);
insert.close();
JOptionPane.showMessageDialog(null,"Nuevo registro agregado con exito.");
} //end try
catch(SQLException x)
{
JOptionPane.showMessageDialog(null," error inesperado " + x.getMessage());
}}}
//−−
//−−
//clase interna privada EventoInternoBoton...
private class EventoInternoBoton implements ActionListener
60
{
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
}
}
//−−
public static void main( String [] args)
{
AGREGACIONES3 obj = new AGREGACIONES3();
obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
obj.show();
}
}
ELIMINACIONES
61
Explicación:
El formulario diseñado para la opción de eliminación consta de tres pestañas en las cuales el usuario podrá
señalar con que tabla quiere trabajar de las tres disponibles en la base de datos (deudores, fiadores y
prestamos).
Una vez seleccionada la tabla con la que se desea trabajar, se procede a la acción misma de eliminar los datos
de acuerdo al codigo capturado en la caja de texto.
62
El proceso de eliminación del registro se muestra en la ilustración de arriba, en la cual podemos observar que
en la prueba se digitó el codigo 1000 Luego el usuario presiona Enter, el sistema captura el codigo y se manda
la petición en una sentencia SQL, con lo cual se muestra en pantalla la operación realizada, observando los
registros de la tabla antes y después de la operación de eliminación del registro, luego se muestra los mensajes
de del codigo que fue asignado por el usuario y el resultado final al ser eliminado el registro
satisfactoriamente.
El proceso e interfaz de la opción Eliminar es el mismo para todas las tablas.
Codigo fuente para la opcion eliminar
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class ELIMINACIONES extends JFrame{
private JPanel xpanel, ypanel, zpanel;
private JTextField wcod, wcod2, wcod3;
private JLabel xcod, xcod2, xcod3;
private String valor1;
private ActionListener closex;
private JButton xsalir, xconsulta, xconsulta2, xconsulta3;
public ELIMINACIONES()
{
// Inicio constructor
super ("Eliminar registros a tablas PRESTAMOS, FIADORES Y DEUDORES");
// Creacion de objeto JTabbedPane
JTabbedPane xtpanel = new JTabbedPane();
// creacion de Menu y submenus...
JMenu menuArchivo = new JMenu(" File ");
63
menuArchivo.setMnemonic( 'a' );
JMenuItem elementoAcerca = new JMenuItem("Ayuda ?");
elementoAcerca.setMnemonic( 'b' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(ELIMINACIONES.this,"Para poder elimiar los registros de forma correcta
es necesario que:\n1−Elimine los codigos de Deudores y Fiadores que se encuentran en la tabla de
PRESTAMOS\n2− Luego ir a la opcion de FIADORES y eliminar el codigo del Fiador que aparece en la
consulta.\n3− Posterior a eso ir a la opcion de Deudores y borrar el código del Deudor");
}
});
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(ELIMINACIONES.this,"Close window now!");
JButton xx = new JButton();
xx.removeActionListener( closex );
dispose();
xx.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
64
barra.add( menuArchivo );
// crear objeto JLabel
xcod = new JLabel("CODIGO DEUDOR:");
xcod.setToolTipText("Digite el código del registro que deceas eliminar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JLabel para el segundo contenedor
xcod2 = new JLabel("CODIGO FIADOR:");
xcod2.setToolTipText("Digite el código del registro que deceas eliminar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JLabel para el tercer contenedor
xcod3 = new JLabel("CODIGO DEUDOR:");
xcod3.setToolTipText("Digite el código del registro que deceas eliminar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
// crear objeto JTextField
wcod = new JTextField( 10 );
// crear objeto JTextField para el segundo contenedor
wcod2 = new JTextField( 10 );
// crear objeto JTextField para el tercer contenedor
wcod3 = new JTextField( 10 );
// Crear objeto de tipo clase EventoInterno...
EventoInterno objDeTexto = new EventoInterno();
wcod.addActionListener( objDeTexto );
// Crear objeto de tipo clase EventoInterno2...
EventoInterno2 objDeTexto2 = new EventoInterno2();
wcod2.addActionListener( objDeTexto2 );
// Crear objeto de tipo clase EventoInterno3...
EventoInterno3 objDeTexto3 = new EventoInterno3();
wcod3.addActionListener( objDeTexto3 );
65
// crear Boton
xsalir = new JButton( "Salir" );
xconsulta = new JButton( "Consultar" );
// crear boton consulta para segundo contenedor
xconsulta2 = new JButton( "Consultar" );
// crear boton consulta para tercer contenedor
xconsulta3 = new JButton( "Consultar" );
// Crear objeto de tipo clase EventoInternoBoton
EventoInternoBoton objBoton = new EventoInternoBoton();
xsalir.addActionListener( objBoton );
xconsulta.addActionListener( objBoton );
// Crear objeto de tipo clase EventoInternoBoton2
EventoInternoBoton2 objBoton2 = new EventoInternoBoton2();
xconsulta2.addActionListener( objBoton2 );
// Crear objeto de tipo clase EventoInternoBoton3
EventoInternoBoton3 objBoton3 = new EventoInternoBoton3();
xconsulta3.addActionListener( objBoton3 );
xpanel = new JPanel();
xpanel.add( xcod );
xpanel.add( wcod );
xpanel.add( xsalir );
xpanel.add( xconsulta );
ypanel = new JPanel();
ypanel.add( xcod2 );
ypanel.add( wcod2 );
ypanel.add( xconsulta2 );
66
zpanel = new JPanel();
zpanel.add( xcod3 );
zpanel.add( wcod3 );
zpanel.add( xconsulta3 );
xtpanel.addTab( "DEUDORES", null, xpanel, "Este panel contiene informacion sobre los registros contenidos
en la tabla de Deudores" );
xtpanel.addTab( "FIADORES", null, ypanel, "Este panel contiene informacion sobre los registros contenidos
en la tabla de Fiadores" );
xtpanel.addTab( "PRESTAMOS", null, zpanel, "Este panel contiene informacion sobre los registros
contenidos en la tabla de Prestamos" );
// Agregar objeto JTabbedPane al contenedor
getContentPane().add( xtpanel );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 800, 500);
setLocation( W1 / 7, H1 / 6);
setVisible( true );
// Fin constructor
}
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno...
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador = 1;
public void actionPerformed( ActionEvent evento)
67
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( true );
wcod.setText("");
}
JOptionPane.showMessageDialog(null, "\nID Asignado: " + valor1 );
try
{
String delete = "DELETE FROM DEUDORES WHERE" + " CODDEUDOR = '" + valor1 + "'";
//Forma para crear una sentencia SQL precompilada
PreparedStatement del = ToConecction.conexion.prepareStatement(delete);
del.executeUpdate();
del.close();
JOptionPane.showMessageDialog(null," Registro borrado con exito");
}
catch(SQLException x)
{
JOptionPane.showMessageDialog(null,"error inesperado " + x.getMessage());
}
}
}
//−
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno2...
private class EventoInterno2 implements ActionListener
{
68
public USUARIO ToConecction2 = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador2 = 1;
public void actionPerformed( ActionEvent evento2)
{
if ( evento2.getSource() == wcod2 ){
valor1 = evento2.getActionCommand();
wcod2.setEditable( true );
wcod2.setText("");
}
JOptionPane.showMessageDialog(null, "\nID Asignado: " + valor1 );
try
{
String delete2 = "DELETE FROM FIADORES WHERE" + " CODFIADOR = '" + valor1 + "'";
//Forma para crear una sentencia SQL precompilada
PreparedStatement del2 = ToConecction2.conexion.prepareStatement(delete2);
del2.executeUpdate();
del2.close();
JOptionPane.showMessageDialog(null," Registro borrado con exito");
}
catch(SQLException x)
{
JOptionPane.showMessageDialog(null," error inesperado " + x.getMessage());
}
}
}
69
//−
//−Cuerpo de la clase interna; para los eventos de los JTextFields. Clase interna privada EventoInterno3...
private class EventoInterno3 implements ActionListener
{
public USUARIO ToConecction3 = new USUARIO();
//procesar los eventos de los campos de texto.
private int contador3 = 1;
public void actionPerformed( ActionEvent evento3)
{
if ( evento3.getSource() == wcod3 ){
valor1 = evento3.getActionCommand();
wcod3.setEditable( true );
wcod3.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO A BORRAR: " + valor1 );
try
{
String delete3 = "DELETE FROM PRESTAMOS WHERE" + " CODDEUDOR = '" + valor1 + "'";
//Forma para crear una sentencia SQL precompilada
PreparedStatement del3 = ToConecction3.conexion.prepareStatement(delete3);
del3.executeUpdate();
del3.close();
JOptionPane.showMessageDialog(null," Registro borrado con exito");
}
catch(SQLException x)
{
70
JOptionPane.showMessageDialog(null," error inesperado " + x.getMessage());
}
}
}
//−
//−Cuerpo de la clase interna; para los eventos de los botones. Clase interna privada EventoInternoBoton...
private class EventoInternoBoton implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
private int contador = 0;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
else if (evento.getSource() == xconsulta)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador += 1;
if (contador == 2)
{
xconsulta.setVisible( false );
71
}
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM DEUDORES");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(metaDato.getColumnName( i )+"\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
xpanel.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
72
}
}
}
//−
//−Cuerpo de la clase interna; para evento boton. Clase interna privada EventoInternoBoton2...
private class EventoInternoBoton2 implements ActionListener
{
public USUARIO ToConecction2 = new USUARIO();
private int contador2 = 0;
public void actionPerformed( ActionEvent evento2)
{
if (evento2.getSource() == xconsulta2)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador2 += 1;
if (contador2 == 2)
{
xconsulta2.setVisible( false );
}
try
{
Statement insert2 = ToConecction2.conexion.createStatement();
StringBuffer resultado2 = new StringBuffer();
ResultSet conjuntoResultado2 = insert2.executeQuery("SELECT *FROM FIADORES");
ResultSetMetaData metaDato2 = conjuntoResultado2.getMetaData();
int numeroColumnas2 = metaDato2.getColumnCount();
73
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(metaDato2.getColumnName( i )+"\t" );
resultado2.append( "\n" );
while ( conjuntoResultado2.next() )
{
for ( int i = 1; i <= numeroColumnas2; i++ )
resultado2.append(conjuntoResultado2.getObject( i ) + "\t");
resultado2.append( "\n" );
}
JTextArea areaTexto2 = new JTextArea( resultado2.toString() );
ypanel.add( new JScrollPane ( areaTexto2 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
//−
//−Cuerpo de la clase interna; para evento boton. Clase interna privada EventoInternoBoton3...
private class EventoInternoBoton3 implements ActionListener
{
public USUARIO ToConecction3 = new USUARIO();
74
private int contador3 = 0;
public void actionPerformed( ActionEvent evento3)
{
if (evento3.getSource() == xconsulta3)
{
//Obligamos a que no se cree un tercer objeto de texto en la pantalla..
contador3 += 1;
if (contador3 == 2)
{
xconsulta3.setVisible( false );
}
try
{
Statement insert3 = ToConecction3.conexion.createStatement();
StringBuffer resultado3 = new StringBuffer();
ResultSet conjuntoResultado3 = insert3.executeQuery("SELECT *FROM PRESTAMOS");
ResultSetMetaData metaDato3 = conjuntoResultado3.getMetaData();
int numeroColumnas3 = metaDato3.getColumnCount();
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(metaDato3.getColumnName( i )+"\t" );
resultado3.append( "\n" );
while ( conjuntoResultado3.next() )
{
for ( int i = 1; i <= numeroColumnas3; i++ )
resultado3.append(conjuntoResultado3.getObject( i ) + "\t");
resultado3.append( "\n" );
75
}
JTextArea areaTexto3 = new JTextArea( resultado3.toString() );
zpanel.add( new JScrollPane ( areaTexto3 ) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
//−
public static void main( String [] args)
{
// Inicio principal
ELIMINACIONES obj = new ELIMINACIONES();
obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
obj.show();
// Fin principal
}
}
ACTUALIZACIONES:
Actualización para la tabla Deudores (pantallas).
76
77
EXPLICACIÓN:
La opción de Actualizar , interactúa con el usuario de la siguiente manera:
Se despliega la opción de acuerdo a la tabla seleccionada con anterioridad, se hace una consulta general de los
registros de la tabla, en donde el usuario podrá observar el registro que se quiere actualizar, una vez
seleccionado se digita su codigo en el cuadro de texto, se marca dicho codigo, el sistema muestra el codigo
seleccionado, ahora bien el usuario debe elegir en el cuadro de opción cual campo desea actualizar
perteneciente al codigo que escogió al principio de acuerdo a la opción seleccionada se despliega un cuadro de
captura el cual como su nombre lo indica su misión es capturar el nuevo valor al campo que se ha
seleccionado, consecuentemente, se muestra a continuación el mensaje de que el dato (campo) ha sido
actualizado con éxito, ahora el usuario puede consulta que de hecho el cambio que realizó se muestra en la
siguiente consulta que realice.
El proceso e interfaz es el semejante para todas las tablas contenidas en l BD.
CODIGO FUENTE PARA LA OPCION ACTUALIZAR
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
78
import javax.swing.*;
import java.sql.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class MODIFICACIONES extends JFrame
{
private JTextField wcod;
private JLabel xcod;
private String valor1;
private JButton xsalir, xconsulta;
private ActionListener closex;
public MODIFICACIONES()
{
super("MODIFICAR UN REGISTRO DE TABLA DEUDORES");
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
xcod = new JLabel( "CODIGO DEUDOR" );
xcod.setToolTipText("Digite el código del registro que deceas modificar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
contenedor.add( xcod );
wcod = new JTextField( 10 );
contenedor.add( wcod );
xsalir = new JButton( "Salir" );
contenedor.add( xsalir );
xconsulta = new JButton( "Consultar" );
contenedor.add( xconsulta );
EventoInternoBoton k = new EventoInternoBoton();
xsalir.addActionListener( k );
79
xconsulta.addActionListener( k );
EventoInterno objx = new EventoInterno();
wcod.addActionListener( objx );
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'A' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'B' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(MODIFICACIONES.this,"Ejemplo de como modificar un registro en la
tabla Deudores");
}});
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JButton BtnNuevo = new JButton();
BtnNuevo.removeActionListener( closex );
dispose();
BtnNuevo.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
80
setJMenuBar( barra );
barra.add( menuArchivo );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 800, 500);
setLocation( W1 / 7, H1 / 6);
setVisible( true );
}//constructor fin
public static void main(String [] args)
{
MODIFICACIONES objver = new MODIFICACIONES();
objver.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objver.show();
System.gc();
}
private class EventoInternoBoton implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
private int contador = 0;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
81
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
else if (evento.getSource() == xconsulta)
{
contador += 1;
if (contador == 4)
{
xconsulta.setVisible( false );
}
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM DEUDORES");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(metaDato.getColumnName( i ) + "\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
82
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
Container contenedor = getContentPane();
contenedor.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( true );
wcod.setText("");
}
JOptionPane.showMessageDialog(null, "\n CODIGO ASIGNADO: " + valor1 );
try
83
{
String IDx = valor1;
String usuario = JOptionPane.showInputDialog("Opcion Actualizacion\n1− Nuevo NOMBRE\n2−Nuevo
APELLIDO\n3−Nuevo DUI\n4−Nuevo NIT\n5−Nuevo TELEFONO\n6−Nuevo SALARIO\n");
String update = "";
int posicion = Integer.parseInt( usuario );
switch( posicion )
{
case 1:
String nuevo3 = JOptionPane.showInputDialog("Digite nuevo NOMBRE");
update = "UPDATE DEUDORES SET NOMDEU = '"+ nuevo3 + "' " + "WHERE CODDEUDOR = '"+ IDx
+ "' ";
break;
case 2:
String nuevo4 = JOptionPane.showInputDialog("Digite nuevo APELLIDO");
update = "UPDATE DEUDORES SET APELLDEU = '"+ nuevo4 + "' " + "WHERE CODDEUDOR = '"+
IDx + "' ";
break;
case 3:
String nuevo5 = JOptionPane.showInputDialog("Digite nuevo DUI");
update = "UPDATE DEUDORES SET DUIDEU = '"+ nuevo5 + "' " + "WHERE CODDEUDOR = '"+ IDx +
"' ";
break;
case 4:
String nuevo6 = JOptionPane.showInputDialog("Digite nuevo NIT");
update = "UPDATE DEUDORES SET NITDEU = '"+ nuevo6 + "' " + "WHERE CODDEUDOR = '"+ IDx +
"' ";
break;
case 5:
84
String nuevo7 = JOptionPane.showInputDialog("Digite nuevo TELEFONO");
update = "UPDATE DEUDORES SET TELDEU = '"+ nuevo7 + "' " + "WHERE CODDEUDOR = '"+ IDx +
"' ";
break;
case 6:
String nuevo8 = JOptionPane.showInputDialog("Digite nuevo SALARIO");
update = "UPDATE DEUDORES SET SALARIODEU = '"+ nuevo8 + "' " + "WHERE CODDEUDOR = '"+
IDx + "' ";
break;
default:
JOptionPane.showMessageDialog(null, "THIS ERROR");
break;
}
//Forma para crear una sentencia SQL
Statement UP1 = ToConecction.conexion.createStatement();
UP1.executeUpdate(update);
UP1.close();
JOptionPane.showMessageDialog(null," Registro actualizado con exito ");
} //end try
catch(SQLException x)
{
JOptionPane.showMessageDialog(null, " error inesperado " + x.getMessage());
}}}}
Actualizacion para la tabla Fiadores (pantallas):
85
86
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class MODIFICACIONES2 extends JFrame
87
{
private JTextField wcod;
private JLabel xcod;
private String valor1;
private ActionListener closex;
private JButton xsalir, xconsulta;
public MODIFICACIONES2()
{
super("MODIFICAR UN REGISTRO DE TABLA FIADORES");
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
xcod = new JLabel( "CODIGO FIADOR" );
xcod.setToolTipText("Digite el código del registro que deceas modificar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
contenedor.add( xcod );
wcod = new JTextField( 10 );
contenedor.add( wcod );
xsalir = new JButton( "Salir" );
contenedor.add( xsalir );
xconsulta = new JButton( "Consultar" );
contenedor.add( xconsulta );
EventoInternoBoton k = new EventoInternoBoton();
xsalir.addActionListener( k );
xconsulta.addActionListener( k );
EventoInterno objx = new EventoInterno();
wcod.addActionListener( objx );
JMenu menuArchivo = new JMenu(" File ");
88
menuArchivo.setMnemonic( 'A' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'B' );
menuArchivo.add( elementoAcerca );
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(MODIFICACIONES2.this,"Ejemplo de como modificar un registro en la
tabla Fiadores");
}
}
);
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JButton BtnNuevo2 = new JButton();
BtnNuevo2.removeActionListener( closex );
dispose();
BtnNuevo2.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
89
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
setSize( 800, 500);
setLocation( W1 / 7, H1 / 6);
setVisible( true );
}//constructor fin
public static void main(String [] args)
{
MODIFICACIONES2 objver = new MODIFICACIONES2();
objver.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objver.show();
System.gc();
}
private class EventoInternoBoton implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
private int contador = 0;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
90
xsalir.addActionListener( closex );
}
else if (evento.getSource() == xconsulta)
{
contador += 1;
if (contador == 4)
{
xconsulta.setVisible( false );
}
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM FIADORES");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(metaDato.getColumnName( i ) + "\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
91
Container contenedor = getContentPane();
contenedor.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( true );
wcod.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO ASIGNADO: " + valor1 );
try
{
String IDx = valor1;
92
String usuario = JOptionPane.showInputDialog("Opcion Actualizacion\n1− Nuevo NOMBRE\n2−Nuevo
APELLIDO\n3−Nuevo DUI\n4−Nuevo NIT\n5−Nuevo TELEFONO\n6−Nuevo SALARIO");
String update = "";
int posicion = Integer.parseInt( usuario );
switch( posicion )
{
case 1:
String nuevo3 = JOptionPane.showInputDialog("Digite nuevo NOMBRE");
update = "UPDATE FIADORES SET NOMFIA = '"+ nuevo3 + "' " + "WHERE CODFIADOR = '"+ IDx + "'
";
break;
case 2:
String nuevo4 = JOptionPane.showInputDialog("Digite nuevo APELLIDO");
update = "UPDATE FIADORES SET APELLFIA = '"+ nuevo4 + "' " + "WHERE CODFIADOR = '"+ IDx +
"' ";
break;
case 3:
String nuevo5 = JOptionPane.showInputDialog("Digite nuevo DUI");
update = "UPDATE FIADORES SET DUIFIA = '"+ nuevo5 + "' " + "WHERE CODFIADOR = '"+ IDx + "'
";
break;
case 4:
String nuevo6 = JOptionPane.showInputDialog("Digite nuevo NIT");
update = "UPDATE FIADORES SET NITFIA = '"+ nuevo6 + "' " + "WHERE CODFIADOR = '"+ IDx + "' ";
break;
case 5:
String nuevo7 = JOptionPane.showInputDialog("Digite nuevo TELEFONO");
update = "UPDATE FIADORES SET TELFIA = '"+ nuevo7 + "' " + "WHERE CODFIADOR = '"+ IDx + "'
";
93
break;
case 6:
String nuevo8 = JOptionPane.showInputDialog("Digite nuevo SALARIO");
update = "UPDATE FIADORES SET SALARIOFIA = '"+ nuevo8 + "' " + "WHERE CODFIADOR = '"+
IDx + "' ";
break;
default:
JOptionPane.showMessageDialog(null, "THIS ERROR");
break;
}
//Forma para crear una sentencia SQL
Statement UP1 = ToConecction.conexion.createStatement();
UP1.executeUpdate(update);
UP1.close();
JOptionPane.showMessageDialog(null," Registro actualizado con exito ");
} //end try
catch(SQLException x)
{
JOptionPane.showMessageDialog(null, " error inesperado " + x.getMessage());
}
}
}
}
Actualizacion de la tabla Prestamos (pantallas)
94
95
Codigo fuente para la opción de Actualizar (tabla prestamos):
package www.conectaCon.javaSQL.almacen;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import www.conectaCon.javaSQL.almacen.USUARIO;
public class MODIFICACIONES3 extends JFrame
{
private JTextField wcod;
private JLabel xcod;
private String valor1;
96
private ActionListener closex;
private JButton xsalir, xconsulta;
public MODIFICACIONES3()
{
super("MODIFICAR UN REGISTRO DE TABLA PRESTAMOS");
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
xcod = new JLabel( "CODIGO DEUDOR" );
xcod.setToolTipText("Digite el código del registro que deceas modificar. ¡Recuerde press ENTER luego de
digitar un valor nuevo !");
contenedor.add( xcod );
wcod = new JTextField( 10 );
contenedor.add( wcod );
xsalir = new JButton( "Salir" );
contenedor.add( xsalir );
xconsulta = new JButton( "Consultar" );
contenedor.add( xconsulta );
EventoInternoBoton k = new EventoInternoBoton();
xsalir.addActionListener( k );
xconsulta.addActionListener( k );
EventoInterno objx = new EventoInterno();
wcod.addActionListener( objx );
JMenu menuArchivo = new JMenu(" File ");
menuArchivo.setMnemonic( 'A' );
JMenuItem elementoAcerca = new JMenuItem("Acerca de...");
elementoAcerca.setMnemonic( 'B' );
menuArchivo.add( elementoAcerca );
97
elementoAcerca.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JOptionPane.showMessageDialog(MODIFICACIONES3.this,"Ejemplo de como modificar un registro en la
tabla Prestamos");
}
}
);
JMenuItem elementoSalir = new JMenuItem("Salir");
elementoSalir.setMnemonic( 'C' );
menuArchivo.add( elementoSalir );
elementoSalir.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent evento )
{
JButton BtnNuevo3 = new JButton();
BtnNuevo3.removeActionListener( closex );
dispose();
BtnNuevo3.addActionListener( closex );
}
});
JMenuBar barra = new JMenuBar();
setJMenuBar( barra );
barra.add( menuArchivo );
Toolkit kit1 = Toolkit.getDefaultToolkit();
Dimension mascara1 = kit1.getScreenSize();
int H1 = mascara1.height;
int W1 = mascara1.width;
98
setSize( 800, 500);
setLocation( W1 / 7, H1 / 6);
setVisible( true );
}//constructor fin
public static void main(String [] args)
{
MODIFICACIONES3 objver = new MODIFICACIONES3();
objver.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
objver.show();
System.gc();
}
private class EventoInternoBoton implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
private int contador = 0;
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == xsalir )
{
JOptionPane.showMessageDialog(null,"Close windows now. ok!");
xsalir.removeActionListener( closex );
dispose();
xsalir.addActionListener( closex );
}
else if (evento.getSource() == xconsulta)
{
99
contador += 1;
if (contador == 4)
{
xconsulta.setVisible( false );
}
try
{
Statement insert = ToConecction.conexion.createStatement();
StringBuffer resultado = new StringBuffer();
ResultSet conjuntoResultado = insert.executeQuery("SELECT *FROM PRESTAMOS");
ResultSetMetaData metaDato = conjuntoResultado.getMetaData();
int numeroColumnas = metaDato.getColumnCount();
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(metaDato.getColumnName( i ) + "\t" );
resultado.append( "\n" );
while ( conjuntoResultado.next() )
{
for ( int i = 1; i <= numeroColumnas; i++ )
resultado.append(conjuntoResultado.getObject( i ) + "\t");
resultado.append( "\n" );
}
JTextArea areaTexto = new JTextArea( resultado.toString() );
Container contenedor = getContentPane();
contenedor.add( new JScrollPane ( areaTexto) );
setSize(800, 500);
setVisible( true );
100
}
catch(SQLException x)
{
System.out.println("error inesperado " + x.getMessage());
}
}
}
}
private class EventoInterno implements ActionListener
{
public USUARIO ToConecction = new USUARIO();
public void actionPerformed( ActionEvent evento)
{
if ( evento.getSource() == wcod ){
valor1 = evento.getActionCommand();
wcod.setEditable( true );
wcod.setText("");
}
JOptionPane.showMessageDialog(null, "\nCODIGO ASIGNADO: " + valor1 );
try
{
String IDx = valor1;
String usuario = JOptionPane.showInputDialog("Opcion Actualizacion\n1−Nuevo CODIGO
DEUDOR\n2−Nuevo CODIGO FIADOR\n3−Nuevo CREDITO\n4−Nuevo TAZA INTERES\n5−Nuevo
MONTO\n6−Nuevo PLAZO\n7−Nuevo FECHA PRESTAMO\n8−Nuevo SALDO");
String update = "";
String aviso = "Llave primaria ilegal efectuar modificaciones";
101
int posicion = Integer.parseInt( usuario );
switch( posicion )
{
case 1:
JOptionPane.showMessageDialog(null, aviso);
break;
case 2:
JOptionPane.showMessageDialog(null, aviso);
break;
case 3:
String nuevo5 = JOptionPane.showInputDialog("Digite nuevo TIPO DE CREDITO");
update = "UPDATE PRESTAMOS SET TIPCRED = '"+ nuevo5 + "' " + "WHERE CODDEUDOR = '"+ IDx
+ "' ";
break;
case 4:
String nuevo6 = JOptionPane.showInputDialog("Digite nuevo TAZA INTERES");
update = "UPDATE PRESTAMOS SET TINTER = '"+ nuevo6 + "' " + "WHERE CODDEUDOR = '"+ IDx +
"' ";
break;
case 5:
String nuevo7 = JOptionPane.showInputDialog("Digite nuevo MONTO");
update = "UPDATE PRESTAMOS SET MONTO = '"+ nuevo7 + "' " + "WHERE CODDEUDOR = '"+ IDx
+ "' ";
break;
case 6:
String nuevo8 = JOptionPane.showInputDialog("Digite nuevo PLAZO");
update = "UPDATE PRESTAMOS SET PLAZO = '"+ nuevo8 + "' " + "WHERE CODDEUDOR = '"+ IDx +
"' ";
102
break;
case 7:
String nuevo9 = JOptionPane.showInputDialog("Digite nuevo FECHA DE PRESTAMO");
update = "UPDATE PRESTAMOS SET FECPREST = '"+ nuevo9 + "' " + "WHERE CODDEUDOR = '"+
IDx + "' ";
break;
case 8:
String nuevo10 = JOptionPane.showInputDialog("Digite nuevo SALDO");
update = "UPDATE PRESTAMOS SET SALDO = '"+ nuevo10 + "' " + "WHERE CODDEUDOR = '"+ IDx
+ "' ";
break;
default:
JOptionPane.showMessageDialog(null, "ERROR");
break;
}
//Forma para crear una sentencia SQL
Statement UP1 = ToConecction.conexion.createStatement();
UP1.executeUpdate(update);
UP1.close();
JOptionPane.showMessageDialog(null," Registro actualizado con exito ");
} //end try
catch(SQLException x)
{
JOptionPane.showMessageDialog(null, " error inesperado " + x.getMessage());
}
}
}
103
}
Clase para establecer conexión con SQL Server
package www.conectaCon.javaSQL.almacen;
import java.sql.*;
import javax.swing.*;
public class USUARIO
{
public Connection conexion;
public USUARIO(){ conecta(); }
public void conecta()
{
try
{
System.out.println("Conexion inicial " + conexion);
String odbc = "jdbc:odbc:odbcbase";
String rootDB = "";
String passwdDB = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conexion = DriverManager.getConnection(odbc, rootDB, passwdDB);
System.out.println("Resultado objeto conexion " + conexion);
} //end try
catch(Exception x)
{
System.out.println("Error " + x);
} //end catch
} //end conecta
104
public void xcloseConecction(){
try
{
conexion.close();
} //end try
catch(Exception x)
{
JOptionPane.showMessageDialog(null,"Error " + x);
} //end catch
} //end conecta
}
TABLAS EN SQL
105
Tabla que el administrador crea para establecer las cuentas de los usuarios.
Facultad de Informática y Ciencias Aplicadas
Escuela de Informática
ASIGNATURA:
PROGRAMACIÓN IV
TEMA:
106
AVANCE FINAL DE PROYECTO JAVA
(MANTENIMIENTO DE BASE DE DATOS)
SAN SALVADOR, 8 DE DICIEMBRE DE 2007
107
Descargar