SlideShare une entreprise Scribd logo
1  sur  14
En esta práctica vamos a desarrollar una aplicación de gestión de alumnos (altas, bajas y modificaciones). Como parte de la
información de los alumnos está: la clave (que debe ser única), el nombre, los apellidos, la edad y su dirección (consistente
en el nombre de la calle, el número y el código postal).




El interfaz visual de la aplicación debe ser algo como un frame con tres pestañas. Los paneles de bajas y modificaciones
mostrarán en un desplegable todas las claves de los alumnos dados de alta.

La persistencia de los datos se hará en un Sistema Gestor de Base de Datos, que contará con una única tabla llamada
ALUMNOS cuya definición es:

       CLAVE: VARCHAR(4).
       NOMBRE: VARCHAR(10).
       APELLIDOS: VARCHAR(20).
       EDAD: INTEGER.
       CALLE: VARCHAR(20).
       NUMERO: INTEGER.
       CODIGO: VARCHAR(5).




                                                                                bitCoach::Juan Bautista Cascallar Lorenzo
Direccion.java

import java.io.Serializable;

public class Direccion implements Serializable {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       private String calle;
       private String numero;
       private String codPostal;

       //Constructor
       public Direccion(String calle, String numero, String codPostal){
              this.calle = calle;
              this.numero = numero;
              this.codPostal = codPostal;
       }

       //GETTERS
       public String getCalle(){
              return calle;
       }

       public String getNumero(){
              return numero;
       }

       public String getCodPostal(){
              return codPostal;
       }

       //SETTERS
       public void setCalle(String calle){
              this.calle = calle;
       }

       public void setNumero(String numero){
              this.numero = numero;
       }

       public void setCodPostal(String codPostal){
              this.codPostal = codPostal;
       }

}


Alumno.java

import java.io.Serializable;

public class Alumno implements Serializable {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       //--- Datos Personales ---
       private String clave; //DNI
       private String nombre;
       private String apellidos;
       private String edad;
       //--- Dirección ---
       private Direccion direccion;




                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
public Alumno(String clave, String nombre, String apellidos, String edad,
                      String calle, String numero, String codPostal){

              this.clave = clave;
              this.nombre = nombre;
              this.apellidos = apellidos;

              direccion = new Direccion(calle, numero, codPostal);

       }

       //GETTERS
       public String getClave(){
              return clave;
       }

       public String getNombre(){
              return nombre;
       }

       public String getApellidos(){
              return apellidos;
       }

       public String getEdad(){
              return edad;
       }

       public Direccion getDireccion(){
              return direccion;
       }

       //SETTERS
       public void setClave(String clave){
              this.clave = clave;
       }

       public void setNombre(String nombre){
              this.nombre = nombre;
       }

       public void setApellidos(String apellidos){
              this.apellidos = apellidos;
       }

       public void setEdad(String edad){
              this.edad = edad;
       }

}


conexionDDBB.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class conexionDDBB {

       //ATRIBUTOS
       private Connection con = null;

       //CONSTRUCTOR
       public conexionDDBB(){

              try {
                     Class.forName("com.mysql.jdbc.Driver");
                     try {
                             con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/UNIVERSIDAD","root","");
                     } catch (SQLException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                     }
              } catch (ClassNotFoundException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }
                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
//GETTERS
       public Connection getConexion(){
              return con;
       }

       //OTROS MÉTODOS
       public void cerrarConexion(){
              try {
                      con.close();
              } catch (SQLException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
              }
       }

}


gestorAlumnos.java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//------
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;


public class gestorAlumnos extends JFrame implements ActionListener,WindowListener,ChangeListener {

       private static final long serialVersionUID = 1L;

       //ATRIBUTOS
       Connection con = null;

       //--- Altas ---
       JTextField txt_clave_altas = null;
       JTextField txt_nombre_altas = null;
       JTextField txt_apellidos_altas = null;
       JTextField txt_edad_altas = null;

       JTextField txt_calle_altas = null;
       JTextField txt_numero_altas = null;
       JTextField txt_codpostal_altas = null;
       //--- Bajas ---
       JComboBox combo_bajas = null;

       JTextField   txt_clave_bajas = null;
       JTextField   txt_nombre_bajas = null;
       JTextField   txt_apellidos_bajas = null;
       JTextField   txt_edad_bajas = null;

       JTextField txt_calle_bajas = null;
       JTextField txt_numero_bajas = null;
       JTextField txt_codpostal_bajas = null;

       //--- Modificaciones ---
       JComboBox combo_modif = null;

       JTextField txt_clave_modif = null;
       JTextField txt_nombre_modif = null;
                                                                          bitCoach::Juan Bautista Cascallar Lorenzo
JTextField txt_apellidos_modif = null;
       JTextField txt_edad_modif = null;

       JTextField txt_calle_modif = null;
       JTextField txt_numero_modif = null;
       JTextField txt_codpostal_modif = null;

       //CONSTRUCTOR
       public gestorAlumnos(){

//=========== INTERFAZ GRÁFICA =======================================
               this.setTitle("Gestión de Alumnos");
               this.setSize(300, 400);

              //--- Pestañas ---
              JTabbedPane obj_tabbedPane = new JTabbedPane();
              obj_tabbedPane.setName("obj_tabbedPane");
              JPanel panel1 = new JPanel();
              panel1.setLayout(null);
              obj_tabbedPane.addTab("Altas", panel1);
              JPanel panel2 = new JPanel();
              panel2.setLayout(null);
              obj_tabbedPane.addTab("Bajas", panel2);
              JPanel panel3 = new JPanel();
              panel3.setLayout(null);
              obj_tabbedPane.addTab("Modificaciones", panel3);
              this.getContentPane().add(obj_tabbedPane);

              obj_tabbedPane.addChangeListener(this);

              //--- Menú ---
              JMenuBar barraMenu = new JMenuBar();
              JMenu menu1 = new JMenu("Fichero");

              JMenuItem salvar= new JMenuItem("Salvar");
              salvar.setName("btn_salvar");
              salvar.addActionListener(this);
              menu1.add(salvar);

              JMenuItem salir = new JMenuItem("Salir");
              salir.setName("btn_salir");
              salir.addActionListener(this);
              menu1.add(salir);

              barraMenu.add(menu1);
              this.setJMenuBar(barraMenu);

              //======= PESTAÑA ALTAS ========
              //- Datos Personales -
              TitledBorder tb_altas = new TitledBorder("Datos personales:");
              JLabel etiquetaBorde_altas = new JLabel();
              etiquetaBorde_altas.setBorder(tb_altas);
              etiquetaBorde_altas.setBounds(10, 10, 260, 110);
              panel1.add(etiquetaBorde_altas);

              JLabel lbl_clave_altas = new JLabel();
              lbl_clave_altas.setBounds(20, 30, 70, 20);
              lbl_clave_altas.setText("Clave:");
              panel1.add(lbl_clave_altas);
              txt_clave_altas = new JTextField();
              txt_clave_altas.setName("txt_clave_altas");
              txt_clave_altas.setBounds(110, 30, 150, 20);
              panel1.add(txt_clave_altas);

              JLabel lbl_nombre_altas = new JLabel();
              lbl_nombre_altas.setBounds(20, 10+20*2, 70, 20);
              lbl_nombre_altas.setText("Nombre:");
              panel1.add(lbl_nombre_altas);
              txt_nombre_altas = new JTextField();
              txt_nombre_altas.setName("txt_nombre_altas");
              txt_nombre_altas.setBounds(110, 10+ 20*2, 150, 20);
              panel1.add(txt_nombre_altas);

              JLabel lbl_apellidos_altas = new JLabel();
              lbl_apellidos_altas.setBounds(20, 10+20*3, 70, 20);
              lbl_apellidos_altas.setText("Apellidos:");
              panel1.add(lbl_apellidos_altas);
              txt_apellidos_altas = new JTextField();
              txt_apellidos_altas.setName("txt_apellidos_altas");
                                                                         bitCoach::Juan Bautista Cascallar Lorenzo
txt_apellidos_altas.setBounds(110, 10+20*3, 150, 20);
panel1.add(txt_apellidos_altas);

JLabel lbl_edad_altas = new JLabel();
lbl_edad_altas.setBounds(20, 10+20*4, 70, 20);
lbl_edad_altas.setText("Edad:");
panel1.add(lbl_edad_altas);
txt_edad_altas = new JTextField();
txt_edad_altas.setName("txt_edad_altas");
txt_edad_altas.setBounds(110, 10+20*4, 150, 20);
panel1.add(txt_edad_altas);

//- Dirección -
TitledBorder tbD_altas = new TitledBorder("Dirección:");
JLabel etiquetaBordeD_altas = new JLabel();
etiquetaBordeD_altas.setBorder(tbD_altas);
etiquetaBordeD_altas.setBounds(10, 130, 260, 90);
panel1.add(etiquetaBordeD_altas);

JLabel lbl_calle_altas = new JLabel();
lbl_calle_altas.setBounds(20, 150, 70, 20);
lbl_calle_altas.setText("Calle:");
panel1.add(lbl_calle_altas);
txt_calle_altas = new JTextField();
txt_calle_altas.setName("txt_calle_altas");
txt_calle_altas.setBounds(110, 150, 150, 20);
panel1.add(txt_calle_altas);

JLabel lbl_numero_altas = new JLabel();
lbl_numero_altas.setBounds(20, 150+20*1, 70, 20);
lbl_numero_altas.setText("Número:");
panel1.add(lbl_numero_altas);
txt_numero_altas = new JTextField();
txt_numero_altas.setName("txt_numero_altas");
txt_numero_altas.setBounds(110, 150+ 20*1, 150, 20);
panel1.add(txt_numero_altas);

JLabel lbl_codpostal_altas = new JLabel();
lbl_codpostal_altas.setBounds(20, 150+20*2, 70, 20);
lbl_codpostal_altas.setText("Cód. Postal:");
panel1.add(lbl_codpostal_altas);
txt_codpostal_altas = new JTextField();
txt_codpostal_altas.setName("txt_codpostal_altas");
txt_codpostal_altas.setBounds(110, 150+ 20*2, 150, 20);
panel1.add(txt_codpostal_altas);

//- Botones --
JButton btn_limpiar_altas = new JButton("Limpiar");
btn_limpiar_altas.setName("btn_limpiar_altas");
btn_limpiar_altas.addActionListener(this);
btn_limpiar_altas.setBounds(40, 240, 80, 20);
panel1.add(btn_limpiar_altas);

JButton btn_daralta_altas = new JButton("Dar de alta");
btn_daralta_altas.setName("btn_daralta_altas");
btn_daralta_altas.addActionListener(this);
btn_daralta_altas.setBounds(140, 240, 100, 20);
panel1.add(btn_daralta_altas);
//======= PESTAÑA ALTAS ========

//======= PESTAÑA BAJAS ========
//-- Alumnos - Combo Clave
TitledBorder tb_bajas_clave = new TitledBorder("Alumnos:");
JLabel etiquetaBorde_bajas_combo = new JLabel();
etiquetaBorde_bajas_combo.setBorder(tb_bajas_clave);
etiquetaBorde_bajas_combo.setBounds(10, 10, 260, 50);
panel2.add(etiquetaBorde_bajas_combo);

JLabel lbl_clave_bajas_combo = new JLabel();
lbl_clave_bajas_combo.setBounds(20, 30, 70, 20);
lbl_clave_bajas_combo.setText("Clave:");
panel2.add(lbl_clave_bajas_combo);

combo_bajas = new JComboBox();
combo_bajas.setName("combo_bajas");
combo_bajas.addActionListener(this);
combo_bajas.setBounds(110, 30, 150, 20);
panel2.add(combo_bajas);

                                                              bitCoach::Juan Bautista Cascallar Lorenzo
//- Datos Personales -
TitledBorder tb_bajas = new TitledBorder("Datos personales:");
JLabel etiquetaBorde_bajas = new JLabel();
etiquetaBorde_bajas.setBorder(tb_bajas);
etiquetaBorde_bajas.setBounds(10, 60, 260, 110);
panel2.add(etiquetaBorde_bajas);

JLabel lbl_clave_bajas = new JLabel();
lbl_clave_bajas.setBounds(20, 80, 70, 20);
lbl_clave_bajas.setText("Clave:");
panel2.add(lbl_clave_bajas);
txt_clave_bajas = new JTextField();
txt_clave_bajas.setEditable(false);
txt_clave_bajas.setName("txt_clave_bajas");
txt_clave_bajas.setBounds(110, 80, 150, 20);
panel2.add(txt_clave_bajas);

JLabel lbl_nombre_bajas = new JLabel();
lbl_nombre_bajas.setBounds(20, 60+20*2, 70, 20);
lbl_nombre_bajas.setText("Nombre:");
panel2.add(lbl_nombre_bajas);
txt_nombre_bajas = new JTextField();
txt_nombre_bajas.setEditable(false);
txt_nombre_bajas.setName("txt_nombre_bajas");
txt_nombre_bajas.setBounds(110, 60+ 20*2, 150, 20);
panel2.add(txt_nombre_bajas);

JLabel lbl_apellidos_bajas = new JLabel();
lbl_apellidos_bajas.setBounds(20, 60+20*3, 70, 20);
lbl_apellidos_bajas.setText("Apellidos:");
panel2.add(lbl_apellidos_bajas);
txt_apellidos_bajas = new JTextField();
txt_apellidos_bajas.setEditable(false);
txt_apellidos_bajas.setName("txt_apellidos_bajas");
txt_apellidos_bajas.setBounds(110, 60+20*3, 150, 20);
panel2.add(txt_apellidos_bajas);

JLabel lbl_edad_bajas = new JLabel();
lbl_edad_bajas.setBounds(20, 60+20*4, 70, 20);
lbl_edad_bajas.setText("Edad:");
panel2.add(lbl_edad_bajas);
txt_edad_bajas = new JTextField();
txt_edad_bajas.setEditable(false);
txt_edad_bajas.setName("txt_edad_bajas");
txt_edad_bajas.setBounds(110, 60+20*4, 150, 20);
panel2.add(txt_edad_bajas);

//- Dirección -
TitledBorder tbD_bajas = new TitledBorder("Dirección:");
JLabel etiquetaBordeD_bajas = new JLabel();
etiquetaBordeD_bajas.setBorder(tbD_bajas);
etiquetaBordeD_bajas.setBounds(10, 170, 260, 90);
panel2.add(etiquetaBordeD_bajas);

JLabel lbl_calle_bajas = new JLabel();
lbl_calle_bajas.setBounds(20, 190, 70, 20);
lbl_calle_bajas.setText("Calle:");
panel2.add(lbl_calle_bajas);
txt_calle_bajas = new JTextField();
txt_calle_bajas.setEditable(false);
txt_calle_bajas.setName("txt_calle_bajas");
txt_calle_bajas.setBounds(110, 190, 150, 20);
panel2.add(txt_calle_bajas);

JLabel lbl_numero_bajas = new JLabel();
lbl_numero_bajas.setBounds(20, 190+20*1, 70, 20);
lbl_numero_bajas.setText("Número:");
panel2.add(lbl_numero_bajas);
txt_numero_bajas = new JTextField();
txt_numero_bajas.setEditable(false);
txt_numero_bajas.setName("txt_numero_bajas");
txt_numero_bajas.setBounds(110, 190+ 20*1, 150, 20);
panel2.add(txt_numero_bajas);

JLabel lbl_codpostal_bajas = new JLabel();
lbl_codpostal_bajas.setBounds(20, 190+20*2, 70, 20);
lbl_codpostal_bajas.setText("Cód. Postal:");
panel2.add(lbl_codpostal_bajas);
txt_codpostal_bajas = new JTextField();
                                                           bitCoach::Juan Bautista Cascallar Lorenzo
txt_codpostal_bajas.setEditable(false);
txt_codpostal_bajas.setName("txt_codpostal_bajas");
txt_codpostal_bajas.setBounds(110, 190+ 20*2, 150, 20);
panel2.add(txt_codpostal_bajas);

//- Botones --
JButton btn_dardebaja_bajas = new JButton("Dar de baja");
btn_dardebaja_bajas.setName("btn_darbaja_bajas");
btn_dardebaja_bajas.addActionListener(this);
btn_dardebaja_bajas.setBounds(50, 280, 180, 20);
panel2.add(btn_dardebaja_bajas);
//======= PESTAÑA BAJAS ========


//======= PESTAÑA MODIFICACIONES ========
//-- Alumnos - Combo Clave
TitledBorder tb_modif_clave = new TitledBorder("Alumnos:");
JLabel etiquetaBorde_modif_combo = new JLabel();
etiquetaBorde_modif_combo.setBorder(tb_modif_clave);
etiquetaBorde_modif_combo.setBounds(10, 10, 260, 50);
panel3.add(etiquetaBorde_modif_combo);

JLabel lbl_clave_modif_combo = new JLabel();
lbl_clave_modif_combo.setBounds(20, 30, 70, 20);
lbl_clave_modif_combo.setText("Clave:");
panel3.add(lbl_clave_modif_combo);

combo_modif = new JComboBox();
combo_modif.setName("combo_modif");
combo_modif.addActionListener(this);
combo_modif.setBounds(110, 30, 150, 20);
panel3.add(combo_modif);

//- Datos Personales -
TitledBorder tb_modif = new TitledBorder("Datos personales:");
JLabel etiquetaBorde_modif = new JLabel();
etiquetaBorde_modif.setBorder(tb_modif);
etiquetaBorde_modif.setBounds(10, 60, 260, 110);
panel3.add(etiquetaBorde_modif);

JLabel lbl_clave_modif = new JLabel();
lbl_clave_modif.setBounds(20, 80, 70, 20);
lbl_clave_modif.setText("Clave:");
panel3.add(lbl_clave_modif);
txt_clave_modif = new JTextField();
txt_clave_modif.setName("txt_clave_modif");
txt_clave_modif.setBounds(110, 80, 150, 20);
txt_clave_modif.setEditable(false);
panel3.add(txt_clave_modif);

JLabel lbl_nombre_modif = new JLabel();
lbl_nombre_modif.setBounds(20, 60+20*2, 70, 20);
lbl_nombre_modif.setText("Nombre:");
panel3.add(lbl_nombre_modif);
txt_nombre_modif = new JTextField();
txt_nombre_modif.setName("txt_nombre_modif");
txt_nombre_modif.setBounds(110, 60+ 20*2, 150, 20);
panel3.add(txt_nombre_modif);

JLabel lbl_apellidos_modif = new JLabel();
lbl_apellidos_modif.setBounds(20, 60+20*3, 70, 20);
lbl_apellidos_modif.setText("Apellidos:");
panel3.add(lbl_apellidos_modif);
txt_apellidos_modif = new JTextField();
txt_apellidos_modif.setName("txt_apellidos_modif");
txt_apellidos_modif.setBounds(110, 60+20*3, 150, 20);
panel3.add(txt_apellidos_modif);

JLabel lbl_edad_modif = new JLabel();
lbl_edad_modif.setBounds(20, 60+20*4, 70, 20);
lbl_edad_modif.setText("Edad:");
panel3.add(lbl_edad_modif);
txt_edad_modif = new JTextField();
txt_edad_modif.setName("txt_edad_modif");
txt_edad_modif.setBounds(110, 60+20*4, 150, 20);
panel3.add(txt_edad_modif);

//- Dirección -
TitledBorder tbD_modif = new TitledBorder("Dirección:");
                                                              bitCoach::Juan Bautista Cascallar Lorenzo
JLabel etiquetaBordeD_modif = new JLabel();
              etiquetaBordeD_modif.setBorder(tbD_modif);
              etiquetaBordeD_modif.setBounds(10, 170, 260, 90);
              panel3.add(etiquetaBordeD_modif);

              JLabel lbl_calle_modif = new JLabel();
              lbl_calle_modif.setBounds(20, 190, 70, 20);
              lbl_calle_modif.setText("Calle:");
              panel3.add(lbl_calle_modif);
              txt_calle_modif = new JTextField();
              txt_calle_modif.setName("txt_calle_modif");
              txt_calle_modif.setBounds(110, 190, 150, 20);
              panel3.add(txt_calle_modif);

              JLabel lbl_numero_modif = new JLabel();
              lbl_numero_modif.setBounds(20, 190+20*1, 70, 20);
              lbl_numero_modif.setText("Número:");
              panel3.add(lbl_numero_modif);
              txt_numero_modif = new JTextField();
              txt_numero_modif.setName("txt_numero_modif");
              txt_numero_modif.setBounds(110, 190+ 20*1, 150, 20);
              panel3.add(txt_numero_modif);

              JLabel lbl_codpostal_modif = new JLabel();
              lbl_codpostal_modif.setBounds(20, 190+20*2, 70, 20);
              lbl_codpostal_modif.setText("Cód. Postal:");
              panel3.add(lbl_codpostal_modif);
              txt_codpostal_modif = new JTextField();
              txt_codpostal_modif.setName("txt_codpostal_modif");
              txt_codpostal_modif.setBounds(110, 190+ 20*2, 150, 20);
              panel3.add(txt_codpostal_modif);

              //- Botones --
              JButton btn_dardebaja_modif = new JButton("Modificar");
              btn_dardebaja_modif.setName("btn_actualizar_modif");
              btn_dardebaja_modif.addActionListener(this);
              btn_dardebaja_modif.setBounds(50, 280, 180, 20);
              panel3.add(btn_dardebaja_modif);

              //======= PESTAÑA MODIFICACIONES ========

              this.setVisible(true);

//=========== INTERFAZ GRÁFICA =======================================

              conexionDDBB obj_conexion = new conexionDDBB();
              this.con = obj_conexion.getConexion();

       }

       //FUNCIONES

       private void limpiar_cajas_altas(){
              //--- Datos personales ---
              txt_clave_altas.setText("");
              txt_nombre_altas.setText("");
              txt_apellidos_altas.setText("");
              txt_edad_altas.setText("");
              //--- Dirección ---
              txt_calle_altas.setText("");
              txt_numero_altas.setText("");
              txt_codpostal_altas.setText("");

       }

       private void limpiar_cajas_bajas(){
              //--- Datos personales ---
              txt_clave_bajas.setText("");
              txt_nombre_bajas.setText("");
              txt_apellidos_bajas.setText("");
              txt_edad_bajas.setText("");
              //--- Dirección ---
              txt_calle_bajas.setText("");
              txt_numero_bajas.setText("");
              txt_codpostal_bajas.setText("");

       }


                                                                         bitCoach::Juan Bautista Cascallar Lorenzo
private void limpiar_cajas_modif(){
              //--- Datos personales ---
              txt_clave_modif.setText("");
              txt_nombre_modif.setText("");
              txt_apellidos_modif.setText("");
              txt_edad_modif.setText("");
              //--- Dirección ---
              txt_calle_modif.setText("");
              txt_numero_modif.setText("");
              txt_codpostal_modif.setText("");

       }

       private void alta_registro(){

              if(txt_clave_altas.getText().isEmpty()){
                     JOptionPane.showMessageDialog(this, "Campo clave vacío....");
              }else{
                     try {
                             PreparedStatement pstmt = con.prepareStatement("select clave from alumnos");
                             ResultSet rs = pstmt.executeQuery();
                             //--- Comprobar clave duplicada ---
                             boolean duplicada = false;
                             while(rs.next()){
                                    if(txt_clave_altas.getText().equals(rs.getString("clave"))){
                                            duplicada = true;
                                            JOptionPane.showMessageDialog(this, "Clave duplicada...");
                                            break;
                                    }
                             }

                               if(duplicada == false){
                                      //Añadir el nuevo registro...

                                       String consulta = "INSERT INTO alumnos " +
                                                      " (clave, nombre, apellidos, edad, calle, numero, codigo) VALUES
" +
                                                     "('" + this.txt_clave_altas.getText() + "','" +
this.txt_nombre_altas.getText() +
                                                     "','" + this.txt_apellidos_altas.getText() + "','" +
                                                     Integer.parseInt(this.txt_edad_altas.getText()) +
                                                     "','" + this.txt_calle_altas.getText() + "','" +
                                                     Integer.parseInt(this.txt_numero_altas.getText()) +
                                                     "','" + this.txt_codpostal_altas.getText() + "')";

                                       pstmt = con.prepareStatement(consulta);
                                       pstmt.executeUpdate();
                                       this.limpiar_cajas_altas();
                               }

                      } catch (SQLException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                      }
              }

       }//Fin function

       private void actualizar_combo(String str_combo){

              try {
                      PreparedStatement pstmt = con.prepareStatement("select clave from alumnos");
                      ResultSet rs = pstmt.executeQuery();

                      if(str_combo.equals("combo_bajas")){
                             combo_bajas.removeAllItems();
                             while(rs.next()){
                                     combo_bajas.addItem(rs.getString(1));
                             }

                               if(combo_bajas.getItemCount() != 0){
                                      //---
                                      mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem());
                               }
                      }else{
                               combo_modif.removeAllItems();
                               while(rs.next()){
                                      combo_modif.addItem(rs.getString(1));
                               }
                                                                              bitCoach::Juan Bautista Cascallar Lorenzo
if(combo_bajas.getItemCount() != 0){
                                     //---
                                     mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem());
                              }else{
                                     limpiar_cajas_modif();
                              }
                       }

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }

       }//fin function

       private void mostrar_registro_bajas_por_clave(String clave){

               if(clave != null){
                      try {
                              PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '"
+ clave + "'");
                              ResultSet rs = pstmt.executeQuery();

                              rs.next();

                              //--- Datos personales ---
                              txt_clave_bajas.setText(rs.getString("clave"));
                              txt_nombre_bajas.setText(rs.getString("nombre"));
                              txt_apellidos_bajas.setText(rs.getString("apellidos"));
                              txt_edad_bajas.setText(rs.getString("edad"));
                              //--- Dirección ---
                              txt_calle_bajas.setText(rs.getString("calle"));
                              txt_numero_bajas.setText(rs.getString("numero"));
                              txt_codpostal_bajas.setText(rs.getString("codigo"));

                       } catch (SQLException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                       }
              }else{
                       limpiar_cajas_bajas();
              }
       }

       private void mostrar_registro_modif_por_clave(String clave){

               if(clave != null){
                      try {
                              PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '"
+ clave + "'");
                              ResultSet rs = pstmt.executeQuery();

                              rs.next();

                              //--- Datos personales ---
                              txt_clave_modif.setText(rs.getString("clave"));
                              txt_nombre_modif.setText(rs.getString("nombre"));
                              txt_apellidos_modif.setText(rs.getString("apellidos"));
                              txt_edad_modif.setText(rs.getString("edad"));
                              //--- Dirección ---
                              txt_calle_modif.setText(rs.getString("calle"));
                              txt_numero_modif.setText(rs.getString("numero"));
                              txt_codpostal_modif.setText(rs.getString("codigo"));

                       } catch (SQLException e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                       }
              }

       }

       private void dardebaja_alumno_por_clave(String clave){


              if(clave != null){
                     String consulta = "delete from alumnos where clave = '" + clave + "'";
                     try {
                                                                           bitCoach::Juan Bautista Cascallar Lorenzo
String mensaje = "¿Borrar alumno: " + clave + "?";
                      String titulo = "Confirmación de Borrado";
                      int respuesta = JOptionPane.showConfirmDialog(this,mensaje,titulo,
                                     JOptionPane.YES_NO_OPTION);
                      if(respuesta == JOptionPane.YES_OPTION){ //SI->0,NO->1,X->-1
                             PreparedStatement pstmt = con.prepareStatement(consulta);
                             pstmt.executeUpdate();
                             actualizar_combo(this.combo_bajas.getName());
                      }

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }

}//Fin function

private void actualizar_alumno_por_clave(String clave){

       if(clave != null){

              String consulta = "update alumnos set nombre = '" + this.txt_nombre_modif.getText() +
              "', apellidos = '" + this.txt_apellidos_modif.getText() +
              "', edad = '" + Integer.parseInt(this.txt_edad_modif.getText()) +
              "', calle = '" + this.txt_calle_modif.getText() +
              "', numero = '" + Integer.parseInt(this.txt_numero_modif.getText()) +
              "', codigo = '" + this.txt_codpostal_modif.getText() +
              "' where clave = '" + clave + "'";

              try {
                      PreparedStatement pstmt = con.prepareStatement(consulta);
                      pstmt.executeUpdate();

                      actualizar_combo(this.combo_modif.getName());

              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
              }
       }

}//Fin function


//--- EVENTOS ---

@Override
public void stateChanged(ChangeEvent e) {
       // TODO Auto-generated method stub

       Object control = e.getSource();

       if(control instanceof JTabbedPane){
              if(((JTabbedPane) control).getName().equals("obj_tabbedPane")){
                      int pestana = ((JTabbedPane) control).getSelectedIndex();
                  switch(pestana){
                          case 0:
                             //--- He pulsado ALTAS ---
                             this.limpiar_cajas_altas();
                             break;
                          case 1:
                             //--- He pulsado BAJAS ---
                             actualizar_combo(this.combo_bajas.getName());
                             break;
                          case 2:
                             //--- He pulsado MODIFICACIONES ---
                             actualizar_combo(this.combo_modif.getName());
                             break;
                  }
              }
       }
}




                                                                      bitCoach::Juan Bautista Cascallar Lorenzo
@Override
public void actionPerformed(ActionEvent arg0) {
       // TODO Auto-generated method stub
       Object control = arg0.getSource();

       if(control instanceof JMenuItem){
              if(((JMenuItem) control).getName().equals("btn_salir")){
                      System.exit(0);
              }

              if(((JMenuItem) control).getName().equals("btn_salvar")){

              }
       }

       if(control instanceof JButton){

              //-- Altas --
              if(((JButton) control).getName().equals("btn_limpiar_altas")){
                     this.limpiar_cajas_altas();
              }

              if(((JButton) control).getName().equals("btn_daralta_altas")){
                     this.alta_registro();
              }

              //-- Bajas --
              if(((JButton) control).getName().equals("btn_darbaja_bajas")){
                     dardebaja_alumno_por_clave((String)combo_bajas.getSelectedItem());
              }

              //-- Modificaciones --
              if(((JButton) control).getName().equals("btn_actualizar_modif")){
                     actualizar_alumno_por_clave((String)combo_modif.getSelectedItem());
              }
       }

       if(control instanceof JComboBox){
              //-- Bajas --
              if(((JComboBox) control).getName().equals("combo_bajas")){
                      mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem());
              }

              //-- Modificaciones --
              if(((JComboBox) control).getName().equals("combo_modif")){
                     mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem());
              }
       }

}

@Override
public void windowActivated(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowClosed(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent arg0) {
       // TODO Auto-generated method stub
       System.exit(0);
}

@Override
public void windowDeactivated(WindowEvent arg0) {
       // TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent arg0) {
       // TODO Auto-generated method stub

                                                                   bitCoach::Juan Bautista Cascallar Lorenzo
}

       @Override
       public void windowIconified(WindowEvent arg0) {
              // TODO Auto-generated method stub

       }

       @Override
       public void windowOpened(WindowEvent arg0) {
              // TODO Auto-generated method stub

       }

}


TestGestorAlumnos.java

public class TestGestorAlumnos {

       /**
        * @param args
        */
       public static void main(String[] args) {

              //ATRIBUTOS


              gestorAlumnos GA = new gestorAlumnos();

       }

}




                                                         bitCoach::Juan Bautista Cascallar Lorenzo

Contenu connexe

Tendances

Tendances (19)

Resumen java
Resumen javaResumen java
Resumen java
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Prac1
Prac1Prac1
Prac1
 
DescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y InterfazDescripcióN De Codigo Y Interfaz
DescripcióN De Codigo Y Interfaz
 
1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
Taller interfaz 2
Taller interfaz 2Taller interfaz 2
Taller interfaz 2
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
5 c iterative
5 c iterative5 c iterative
5 c iterative
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
 
Interfaces con Java
Interfaces con JavaInterfaces con Java
Interfaces con Java
 
Java
JavaJava
Java
 
Informe Final Del Proyecto Poo
Informe Final Del Proyecto PooInforme Final Del Proyecto Poo
Informe Final Del Proyecto Poo
 

Similaire à Java::Acceso a Bases de Datos

Aplication
AplicationAplication
Aplication
wouyrmz
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicos
Kanddy Mobylml
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
Diroplan
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
The Killer
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
cursobeta
 

Similaire à Java::Acceso a Bases de Datos (20)

Aplication
AplicationAplication
Aplication
 
Poo 4 arraylist_implem
Poo 4 arraylist_implemPoo 4 arraylist_implem
Poo 4 arraylist_implem
 
Guia5 java
Guia5 javaGuia5 java
Guia5 java
 
Repaso Cods 268
Repaso Cods 268Repaso Cods 268
Repaso Cods 268
 
Presentacion
PresentacionPresentacion
Presentacion
 
Informe tecnico unidad 2
Informe tecnico unidad 2Informe tecnico unidad 2
Informe tecnico unidad 2
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicos
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Conexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeansConexion sql server 2005 java netbeans
Conexion sql server 2005 java netbeans
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
Taller interfaz 3
Taller interfaz 3Taller interfaz 3
Taller interfaz 3
 
Prueba regresion lineal
Prueba regresion linealPrueba regresion lineal
Prueba regresion lineal
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Patrones utiles para solid
Patrones utiles para solidPatrones utiles para solid
Patrones utiles para solid
 
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
Ejerciciosdeprogramacionconcurrente 111021172712-phpapp01
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
NOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVANOTACIÓN POSTFIJA E INFIJA - JAVA
NOTACIÓN POSTFIJA E INFIJA - JAVA
 

Plus de jubacalo

MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
jubacalo
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
jubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
jubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
jubacalo
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
jubacalo
 
Escenarios
EscenariosEscenarios
Escenarios
jubacalo
 
Matrices02
Matrices02Matrices02
Matrices02
jubacalo
 

Plus de jubacalo (20)

jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
 
MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Escenarios
EscenariosEscenarios
Escenarios
 
Matrices02
Matrices02Matrices02
Matrices02
 
Gráficos
GráficosGráficos
Gráficos
 

Dernier

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Dernier (20)

Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 

Java::Acceso a Bases de Datos

  • 1. En esta práctica vamos a desarrollar una aplicación de gestión de alumnos (altas, bajas y modificaciones). Como parte de la información de los alumnos está: la clave (que debe ser única), el nombre, los apellidos, la edad y su dirección (consistente en el nombre de la calle, el número y el código postal). El interfaz visual de la aplicación debe ser algo como un frame con tres pestañas. Los paneles de bajas y modificaciones mostrarán en un desplegable todas las claves de los alumnos dados de alta. La persistencia de los datos se hará en un Sistema Gestor de Base de Datos, que contará con una única tabla llamada ALUMNOS cuya definición es:  CLAVE: VARCHAR(4).  NOMBRE: VARCHAR(10).  APELLIDOS: VARCHAR(20).  EDAD: INTEGER.  CALLE: VARCHAR(20).  NUMERO: INTEGER.  CODIGO: VARCHAR(5). bitCoach::Juan Bautista Cascallar Lorenzo
  • 2. Direccion.java import java.io.Serializable; public class Direccion implements Serializable { private static final long serialVersionUID = 1L; //ATRIBUTOS private String calle; private String numero; private String codPostal; //Constructor public Direccion(String calle, String numero, String codPostal){ this.calle = calle; this.numero = numero; this.codPostal = codPostal; } //GETTERS public String getCalle(){ return calle; } public String getNumero(){ return numero; } public String getCodPostal(){ return codPostal; } //SETTERS public void setCalle(String calle){ this.calle = calle; } public void setNumero(String numero){ this.numero = numero; } public void setCodPostal(String codPostal){ this.codPostal = codPostal; } } Alumno.java import java.io.Serializable; public class Alumno implements Serializable { private static final long serialVersionUID = 1L; //ATRIBUTOS //--- Datos Personales --- private String clave; //DNI private String nombre; private String apellidos; private String edad; //--- Dirección --- private Direccion direccion; bitCoach::Juan Bautista Cascallar Lorenzo
  • 3. public Alumno(String clave, String nombre, String apellidos, String edad, String calle, String numero, String codPostal){ this.clave = clave; this.nombre = nombre; this.apellidos = apellidos; direccion = new Direccion(calle, numero, codPostal); } //GETTERS public String getClave(){ return clave; } public String getNombre(){ return nombre; } public String getApellidos(){ return apellidos; } public String getEdad(){ return edad; } public Direccion getDireccion(){ return direccion; } //SETTERS public void setClave(String clave){ this.clave = clave; } public void setNombre(String nombre){ this.nombre = nombre; } public void setApellidos(String apellidos){ this.apellidos = apellidos; } public void setEdad(String edad){ this.edad = edad; } } conexionDDBB.java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class conexionDDBB { //ATRIBUTOS private Connection con = null; //CONSTRUCTOR public conexionDDBB(){ try { Class.forName("com.mysql.jdbc.Driver"); try { con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/UNIVERSIDAD","root",""); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } bitCoach::Juan Bautista Cascallar Lorenzo
  • 4. //GETTERS public Connection getConexion(){ return con; } //OTROS MÉTODOS public void cerrarConexion(){ try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } gestorAlumnos.java import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; //------ import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class gestorAlumnos extends JFrame implements ActionListener,WindowListener,ChangeListener { private static final long serialVersionUID = 1L; //ATRIBUTOS Connection con = null; //--- Altas --- JTextField txt_clave_altas = null; JTextField txt_nombre_altas = null; JTextField txt_apellidos_altas = null; JTextField txt_edad_altas = null; JTextField txt_calle_altas = null; JTextField txt_numero_altas = null; JTextField txt_codpostal_altas = null; //--- Bajas --- JComboBox combo_bajas = null; JTextField txt_clave_bajas = null; JTextField txt_nombre_bajas = null; JTextField txt_apellidos_bajas = null; JTextField txt_edad_bajas = null; JTextField txt_calle_bajas = null; JTextField txt_numero_bajas = null; JTextField txt_codpostal_bajas = null; //--- Modificaciones --- JComboBox combo_modif = null; JTextField txt_clave_modif = null; JTextField txt_nombre_modif = null; bitCoach::Juan Bautista Cascallar Lorenzo
  • 5. JTextField txt_apellidos_modif = null; JTextField txt_edad_modif = null; JTextField txt_calle_modif = null; JTextField txt_numero_modif = null; JTextField txt_codpostal_modif = null; //CONSTRUCTOR public gestorAlumnos(){ //=========== INTERFAZ GRÁFICA ======================================= this.setTitle("Gestión de Alumnos"); this.setSize(300, 400); //--- Pestañas --- JTabbedPane obj_tabbedPane = new JTabbedPane(); obj_tabbedPane.setName("obj_tabbedPane"); JPanel panel1 = new JPanel(); panel1.setLayout(null); obj_tabbedPane.addTab("Altas", panel1); JPanel panel2 = new JPanel(); panel2.setLayout(null); obj_tabbedPane.addTab("Bajas", panel2); JPanel panel3 = new JPanel(); panel3.setLayout(null); obj_tabbedPane.addTab("Modificaciones", panel3); this.getContentPane().add(obj_tabbedPane); obj_tabbedPane.addChangeListener(this); //--- Menú --- JMenuBar barraMenu = new JMenuBar(); JMenu menu1 = new JMenu("Fichero"); JMenuItem salvar= new JMenuItem("Salvar"); salvar.setName("btn_salvar"); salvar.addActionListener(this); menu1.add(salvar); JMenuItem salir = new JMenuItem("Salir"); salir.setName("btn_salir"); salir.addActionListener(this); menu1.add(salir); barraMenu.add(menu1); this.setJMenuBar(barraMenu); //======= PESTAÑA ALTAS ======== //- Datos Personales - TitledBorder tb_altas = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_altas = new JLabel(); etiquetaBorde_altas.setBorder(tb_altas); etiquetaBorde_altas.setBounds(10, 10, 260, 110); panel1.add(etiquetaBorde_altas); JLabel lbl_clave_altas = new JLabel(); lbl_clave_altas.setBounds(20, 30, 70, 20); lbl_clave_altas.setText("Clave:"); panel1.add(lbl_clave_altas); txt_clave_altas = new JTextField(); txt_clave_altas.setName("txt_clave_altas"); txt_clave_altas.setBounds(110, 30, 150, 20); panel1.add(txt_clave_altas); JLabel lbl_nombre_altas = new JLabel(); lbl_nombre_altas.setBounds(20, 10+20*2, 70, 20); lbl_nombre_altas.setText("Nombre:"); panel1.add(lbl_nombre_altas); txt_nombre_altas = new JTextField(); txt_nombre_altas.setName("txt_nombre_altas"); txt_nombre_altas.setBounds(110, 10+ 20*2, 150, 20); panel1.add(txt_nombre_altas); JLabel lbl_apellidos_altas = new JLabel(); lbl_apellidos_altas.setBounds(20, 10+20*3, 70, 20); lbl_apellidos_altas.setText("Apellidos:"); panel1.add(lbl_apellidos_altas); txt_apellidos_altas = new JTextField(); txt_apellidos_altas.setName("txt_apellidos_altas"); bitCoach::Juan Bautista Cascallar Lorenzo
  • 6. txt_apellidos_altas.setBounds(110, 10+20*3, 150, 20); panel1.add(txt_apellidos_altas); JLabel lbl_edad_altas = new JLabel(); lbl_edad_altas.setBounds(20, 10+20*4, 70, 20); lbl_edad_altas.setText("Edad:"); panel1.add(lbl_edad_altas); txt_edad_altas = new JTextField(); txt_edad_altas.setName("txt_edad_altas"); txt_edad_altas.setBounds(110, 10+20*4, 150, 20); panel1.add(txt_edad_altas); //- Dirección - TitledBorder tbD_altas = new TitledBorder("Dirección:"); JLabel etiquetaBordeD_altas = new JLabel(); etiquetaBordeD_altas.setBorder(tbD_altas); etiquetaBordeD_altas.setBounds(10, 130, 260, 90); panel1.add(etiquetaBordeD_altas); JLabel lbl_calle_altas = new JLabel(); lbl_calle_altas.setBounds(20, 150, 70, 20); lbl_calle_altas.setText("Calle:"); panel1.add(lbl_calle_altas); txt_calle_altas = new JTextField(); txt_calle_altas.setName("txt_calle_altas"); txt_calle_altas.setBounds(110, 150, 150, 20); panel1.add(txt_calle_altas); JLabel lbl_numero_altas = new JLabel(); lbl_numero_altas.setBounds(20, 150+20*1, 70, 20); lbl_numero_altas.setText("Número:"); panel1.add(lbl_numero_altas); txt_numero_altas = new JTextField(); txt_numero_altas.setName("txt_numero_altas"); txt_numero_altas.setBounds(110, 150+ 20*1, 150, 20); panel1.add(txt_numero_altas); JLabel lbl_codpostal_altas = new JLabel(); lbl_codpostal_altas.setBounds(20, 150+20*2, 70, 20); lbl_codpostal_altas.setText("Cód. Postal:"); panel1.add(lbl_codpostal_altas); txt_codpostal_altas = new JTextField(); txt_codpostal_altas.setName("txt_codpostal_altas"); txt_codpostal_altas.setBounds(110, 150+ 20*2, 150, 20); panel1.add(txt_codpostal_altas); //- Botones -- JButton btn_limpiar_altas = new JButton("Limpiar"); btn_limpiar_altas.setName("btn_limpiar_altas"); btn_limpiar_altas.addActionListener(this); btn_limpiar_altas.setBounds(40, 240, 80, 20); panel1.add(btn_limpiar_altas); JButton btn_daralta_altas = new JButton("Dar de alta"); btn_daralta_altas.setName("btn_daralta_altas"); btn_daralta_altas.addActionListener(this); btn_daralta_altas.setBounds(140, 240, 100, 20); panel1.add(btn_daralta_altas); //======= PESTAÑA ALTAS ======== //======= PESTAÑA BAJAS ======== //-- Alumnos - Combo Clave TitledBorder tb_bajas_clave = new TitledBorder("Alumnos:"); JLabel etiquetaBorde_bajas_combo = new JLabel(); etiquetaBorde_bajas_combo.setBorder(tb_bajas_clave); etiquetaBorde_bajas_combo.setBounds(10, 10, 260, 50); panel2.add(etiquetaBorde_bajas_combo); JLabel lbl_clave_bajas_combo = new JLabel(); lbl_clave_bajas_combo.setBounds(20, 30, 70, 20); lbl_clave_bajas_combo.setText("Clave:"); panel2.add(lbl_clave_bajas_combo); combo_bajas = new JComboBox(); combo_bajas.setName("combo_bajas"); combo_bajas.addActionListener(this); combo_bajas.setBounds(110, 30, 150, 20); panel2.add(combo_bajas); bitCoach::Juan Bautista Cascallar Lorenzo
  • 7. //- Datos Personales - TitledBorder tb_bajas = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_bajas = new JLabel(); etiquetaBorde_bajas.setBorder(tb_bajas); etiquetaBorde_bajas.setBounds(10, 60, 260, 110); panel2.add(etiquetaBorde_bajas); JLabel lbl_clave_bajas = new JLabel(); lbl_clave_bajas.setBounds(20, 80, 70, 20); lbl_clave_bajas.setText("Clave:"); panel2.add(lbl_clave_bajas); txt_clave_bajas = new JTextField(); txt_clave_bajas.setEditable(false); txt_clave_bajas.setName("txt_clave_bajas"); txt_clave_bajas.setBounds(110, 80, 150, 20); panel2.add(txt_clave_bajas); JLabel lbl_nombre_bajas = new JLabel(); lbl_nombre_bajas.setBounds(20, 60+20*2, 70, 20); lbl_nombre_bajas.setText("Nombre:"); panel2.add(lbl_nombre_bajas); txt_nombre_bajas = new JTextField(); txt_nombre_bajas.setEditable(false); txt_nombre_bajas.setName("txt_nombre_bajas"); txt_nombre_bajas.setBounds(110, 60+ 20*2, 150, 20); panel2.add(txt_nombre_bajas); JLabel lbl_apellidos_bajas = new JLabel(); lbl_apellidos_bajas.setBounds(20, 60+20*3, 70, 20); lbl_apellidos_bajas.setText("Apellidos:"); panel2.add(lbl_apellidos_bajas); txt_apellidos_bajas = new JTextField(); txt_apellidos_bajas.setEditable(false); txt_apellidos_bajas.setName("txt_apellidos_bajas"); txt_apellidos_bajas.setBounds(110, 60+20*3, 150, 20); panel2.add(txt_apellidos_bajas); JLabel lbl_edad_bajas = new JLabel(); lbl_edad_bajas.setBounds(20, 60+20*4, 70, 20); lbl_edad_bajas.setText("Edad:"); panel2.add(lbl_edad_bajas); txt_edad_bajas = new JTextField(); txt_edad_bajas.setEditable(false); txt_edad_bajas.setName("txt_edad_bajas"); txt_edad_bajas.setBounds(110, 60+20*4, 150, 20); panel2.add(txt_edad_bajas); //- Dirección - TitledBorder tbD_bajas = new TitledBorder("Dirección:"); JLabel etiquetaBordeD_bajas = new JLabel(); etiquetaBordeD_bajas.setBorder(tbD_bajas); etiquetaBordeD_bajas.setBounds(10, 170, 260, 90); panel2.add(etiquetaBordeD_bajas); JLabel lbl_calle_bajas = new JLabel(); lbl_calle_bajas.setBounds(20, 190, 70, 20); lbl_calle_bajas.setText("Calle:"); panel2.add(lbl_calle_bajas); txt_calle_bajas = new JTextField(); txt_calle_bajas.setEditable(false); txt_calle_bajas.setName("txt_calle_bajas"); txt_calle_bajas.setBounds(110, 190, 150, 20); panel2.add(txt_calle_bajas); JLabel lbl_numero_bajas = new JLabel(); lbl_numero_bajas.setBounds(20, 190+20*1, 70, 20); lbl_numero_bajas.setText("Número:"); panel2.add(lbl_numero_bajas); txt_numero_bajas = new JTextField(); txt_numero_bajas.setEditable(false); txt_numero_bajas.setName("txt_numero_bajas"); txt_numero_bajas.setBounds(110, 190+ 20*1, 150, 20); panel2.add(txt_numero_bajas); JLabel lbl_codpostal_bajas = new JLabel(); lbl_codpostal_bajas.setBounds(20, 190+20*2, 70, 20); lbl_codpostal_bajas.setText("Cód. Postal:"); panel2.add(lbl_codpostal_bajas); txt_codpostal_bajas = new JTextField(); bitCoach::Juan Bautista Cascallar Lorenzo
  • 8. txt_codpostal_bajas.setEditable(false); txt_codpostal_bajas.setName("txt_codpostal_bajas"); txt_codpostal_bajas.setBounds(110, 190+ 20*2, 150, 20); panel2.add(txt_codpostal_bajas); //- Botones -- JButton btn_dardebaja_bajas = new JButton("Dar de baja"); btn_dardebaja_bajas.setName("btn_darbaja_bajas"); btn_dardebaja_bajas.addActionListener(this); btn_dardebaja_bajas.setBounds(50, 280, 180, 20); panel2.add(btn_dardebaja_bajas); //======= PESTAÑA BAJAS ======== //======= PESTAÑA MODIFICACIONES ======== //-- Alumnos - Combo Clave TitledBorder tb_modif_clave = new TitledBorder("Alumnos:"); JLabel etiquetaBorde_modif_combo = new JLabel(); etiquetaBorde_modif_combo.setBorder(tb_modif_clave); etiquetaBorde_modif_combo.setBounds(10, 10, 260, 50); panel3.add(etiquetaBorde_modif_combo); JLabel lbl_clave_modif_combo = new JLabel(); lbl_clave_modif_combo.setBounds(20, 30, 70, 20); lbl_clave_modif_combo.setText("Clave:"); panel3.add(lbl_clave_modif_combo); combo_modif = new JComboBox(); combo_modif.setName("combo_modif"); combo_modif.addActionListener(this); combo_modif.setBounds(110, 30, 150, 20); panel3.add(combo_modif); //- Datos Personales - TitledBorder tb_modif = new TitledBorder("Datos personales:"); JLabel etiquetaBorde_modif = new JLabel(); etiquetaBorde_modif.setBorder(tb_modif); etiquetaBorde_modif.setBounds(10, 60, 260, 110); panel3.add(etiquetaBorde_modif); JLabel lbl_clave_modif = new JLabel(); lbl_clave_modif.setBounds(20, 80, 70, 20); lbl_clave_modif.setText("Clave:"); panel3.add(lbl_clave_modif); txt_clave_modif = new JTextField(); txt_clave_modif.setName("txt_clave_modif"); txt_clave_modif.setBounds(110, 80, 150, 20); txt_clave_modif.setEditable(false); panel3.add(txt_clave_modif); JLabel lbl_nombre_modif = new JLabel(); lbl_nombre_modif.setBounds(20, 60+20*2, 70, 20); lbl_nombre_modif.setText("Nombre:"); panel3.add(lbl_nombre_modif); txt_nombre_modif = new JTextField(); txt_nombre_modif.setName("txt_nombre_modif"); txt_nombre_modif.setBounds(110, 60+ 20*2, 150, 20); panel3.add(txt_nombre_modif); JLabel lbl_apellidos_modif = new JLabel(); lbl_apellidos_modif.setBounds(20, 60+20*3, 70, 20); lbl_apellidos_modif.setText("Apellidos:"); panel3.add(lbl_apellidos_modif); txt_apellidos_modif = new JTextField(); txt_apellidos_modif.setName("txt_apellidos_modif"); txt_apellidos_modif.setBounds(110, 60+20*3, 150, 20); panel3.add(txt_apellidos_modif); JLabel lbl_edad_modif = new JLabel(); lbl_edad_modif.setBounds(20, 60+20*4, 70, 20); lbl_edad_modif.setText("Edad:"); panel3.add(lbl_edad_modif); txt_edad_modif = new JTextField(); txt_edad_modif.setName("txt_edad_modif"); txt_edad_modif.setBounds(110, 60+20*4, 150, 20); panel3.add(txt_edad_modif); //- Dirección - TitledBorder tbD_modif = new TitledBorder("Dirección:"); bitCoach::Juan Bautista Cascallar Lorenzo
  • 9. JLabel etiquetaBordeD_modif = new JLabel(); etiquetaBordeD_modif.setBorder(tbD_modif); etiquetaBordeD_modif.setBounds(10, 170, 260, 90); panel3.add(etiquetaBordeD_modif); JLabel lbl_calle_modif = new JLabel(); lbl_calle_modif.setBounds(20, 190, 70, 20); lbl_calle_modif.setText("Calle:"); panel3.add(lbl_calle_modif); txt_calle_modif = new JTextField(); txt_calle_modif.setName("txt_calle_modif"); txt_calle_modif.setBounds(110, 190, 150, 20); panel3.add(txt_calle_modif); JLabel lbl_numero_modif = new JLabel(); lbl_numero_modif.setBounds(20, 190+20*1, 70, 20); lbl_numero_modif.setText("Número:"); panel3.add(lbl_numero_modif); txt_numero_modif = new JTextField(); txt_numero_modif.setName("txt_numero_modif"); txt_numero_modif.setBounds(110, 190+ 20*1, 150, 20); panel3.add(txt_numero_modif); JLabel lbl_codpostal_modif = new JLabel(); lbl_codpostal_modif.setBounds(20, 190+20*2, 70, 20); lbl_codpostal_modif.setText("Cód. Postal:"); panel3.add(lbl_codpostal_modif); txt_codpostal_modif = new JTextField(); txt_codpostal_modif.setName("txt_codpostal_modif"); txt_codpostal_modif.setBounds(110, 190+ 20*2, 150, 20); panel3.add(txt_codpostal_modif); //- Botones -- JButton btn_dardebaja_modif = new JButton("Modificar"); btn_dardebaja_modif.setName("btn_actualizar_modif"); btn_dardebaja_modif.addActionListener(this); btn_dardebaja_modif.setBounds(50, 280, 180, 20); panel3.add(btn_dardebaja_modif); //======= PESTAÑA MODIFICACIONES ======== this.setVisible(true); //=========== INTERFAZ GRÁFICA ======================================= conexionDDBB obj_conexion = new conexionDDBB(); this.con = obj_conexion.getConexion(); } //FUNCIONES private void limpiar_cajas_altas(){ //--- Datos personales --- txt_clave_altas.setText(""); txt_nombre_altas.setText(""); txt_apellidos_altas.setText(""); txt_edad_altas.setText(""); //--- Dirección --- txt_calle_altas.setText(""); txt_numero_altas.setText(""); txt_codpostal_altas.setText(""); } private void limpiar_cajas_bajas(){ //--- Datos personales --- txt_clave_bajas.setText(""); txt_nombre_bajas.setText(""); txt_apellidos_bajas.setText(""); txt_edad_bajas.setText(""); //--- Dirección --- txt_calle_bajas.setText(""); txt_numero_bajas.setText(""); txt_codpostal_bajas.setText(""); } bitCoach::Juan Bautista Cascallar Lorenzo
  • 10. private void limpiar_cajas_modif(){ //--- Datos personales --- txt_clave_modif.setText(""); txt_nombre_modif.setText(""); txt_apellidos_modif.setText(""); txt_edad_modif.setText(""); //--- Dirección --- txt_calle_modif.setText(""); txt_numero_modif.setText(""); txt_codpostal_modif.setText(""); } private void alta_registro(){ if(txt_clave_altas.getText().isEmpty()){ JOptionPane.showMessageDialog(this, "Campo clave vacío...."); }else{ try { PreparedStatement pstmt = con.prepareStatement("select clave from alumnos"); ResultSet rs = pstmt.executeQuery(); //--- Comprobar clave duplicada --- boolean duplicada = false; while(rs.next()){ if(txt_clave_altas.getText().equals(rs.getString("clave"))){ duplicada = true; JOptionPane.showMessageDialog(this, "Clave duplicada..."); break; } } if(duplicada == false){ //Añadir el nuevo registro... String consulta = "INSERT INTO alumnos " + " (clave, nombre, apellidos, edad, calle, numero, codigo) VALUES " + "('" + this.txt_clave_altas.getText() + "','" + this.txt_nombre_altas.getText() + "','" + this.txt_apellidos_altas.getText() + "','" + Integer.parseInt(this.txt_edad_altas.getText()) + "','" + this.txt_calle_altas.getText() + "','" + Integer.parseInt(this.txt_numero_altas.getText()) + "','" + this.txt_codpostal_altas.getText() + "')"; pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); this.limpiar_cajas_altas(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function private void actualizar_combo(String str_combo){ try { PreparedStatement pstmt = con.prepareStatement("select clave from alumnos"); ResultSet rs = pstmt.executeQuery(); if(str_combo.equals("combo_bajas")){ combo_bajas.removeAllItems(); while(rs.next()){ combo_bajas.addItem(rs.getString(1)); } if(combo_bajas.getItemCount() != 0){ //--- mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem()); } }else{ combo_modif.removeAllItems(); while(rs.next()){ combo_modif.addItem(rs.getString(1)); } bitCoach::Juan Bautista Cascallar Lorenzo
  • 11. if(combo_bajas.getItemCount() != 0){ //--- mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem()); }else{ limpiar_cajas_modif(); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }//fin function private void mostrar_registro_bajas_por_clave(String clave){ if(clave != null){ try { PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '" + clave + "'"); ResultSet rs = pstmt.executeQuery(); rs.next(); //--- Datos personales --- txt_clave_bajas.setText(rs.getString("clave")); txt_nombre_bajas.setText(rs.getString("nombre")); txt_apellidos_bajas.setText(rs.getString("apellidos")); txt_edad_bajas.setText(rs.getString("edad")); //--- Dirección --- txt_calle_bajas.setText(rs.getString("calle")); txt_numero_bajas.setText(rs.getString("numero")); txt_codpostal_bajas.setText(rs.getString("codigo")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ limpiar_cajas_bajas(); } } private void mostrar_registro_modif_por_clave(String clave){ if(clave != null){ try { PreparedStatement pstmt = con.prepareStatement("select * from alumnos where clave = '" + clave + "'"); ResultSet rs = pstmt.executeQuery(); rs.next(); //--- Datos personales --- txt_clave_modif.setText(rs.getString("clave")); txt_nombre_modif.setText(rs.getString("nombre")); txt_apellidos_modif.setText(rs.getString("apellidos")); txt_edad_modif.setText(rs.getString("edad")); //--- Dirección --- txt_calle_modif.setText(rs.getString("calle")); txt_numero_modif.setText(rs.getString("numero")); txt_codpostal_modif.setText(rs.getString("codigo")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private void dardebaja_alumno_por_clave(String clave){ if(clave != null){ String consulta = "delete from alumnos where clave = '" + clave + "'"; try { bitCoach::Juan Bautista Cascallar Lorenzo
  • 12. String mensaje = "¿Borrar alumno: " + clave + "?"; String titulo = "Confirmación de Borrado"; int respuesta = JOptionPane.showConfirmDialog(this,mensaje,titulo, JOptionPane.YES_NO_OPTION); if(respuesta == JOptionPane.YES_OPTION){ //SI->0,NO->1,X->-1 PreparedStatement pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); actualizar_combo(this.combo_bajas.getName()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function private void actualizar_alumno_por_clave(String clave){ if(clave != null){ String consulta = "update alumnos set nombre = '" + this.txt_nombre_modif.getText() + "', apellidos = '" + this.txt_apellidos_modif.getText() + "', edad = '" + Integer.parseInt(this.txt_edad_modif.getText()) + "', calle = '" + this.txt_calle_modif.getText() + "', numero = '" + Integer.parseInt(this.txt_numero_modif.getText()) + "', codigo = '" + this.txt_codpostal_modif.getText() + "' where clave = '" + clave + "'"; try { PreparedStatement pstmt = con.prepareStatement(consulta); pstmt.executeUpdate(); actualizar_combo(this.combo_modif.getName()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//Fin function //--- EVENTOS --- @Override public void stateChanged(ChangeEvent e) { // TODO Auto-generated method stub Object control = e.getSource(); if(control instanceof JTabbedPane){ if(((JTabbedPane) control).getName().equals("obj_tabbedPane")){ int pestana = ((JTabbedPane) control).getSelectedIndex(); switch(pestana){ case 0: //--- He pulsado ALTAS --- this.limpiar_cajas_altas(); break; case 1: //--- He pulsado BAJAS --- actualizar_combo(this.combo_bajas.getName()); break; case 2: //--- He pulsado MODIFICACIONES --- actualizar_combo(this.combo_modif.getName()); break; } } } } bitCoach::Juan Bautista Cascallar Lorenzo
  • 13. @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Object control = arg0.getSource(); if(control instanceof JMenuItem){ if(((JMenuItem) control).getName().equals("btn_salir")){ System.exit(0); } if(((JMenuItem) control).getName().equals("btn_salvar")){ } } if(control instanceof JButton){ //-- Altas -- if(((JButton) control).getName().equals("btn_limpiar_altas")){ this.limpiar_cajas_altas(); } if(((JButton) control).getName().equals("btn_daralta_altas")){ this.alta_registro(); } //-- Bajas -- if(((JButton) control).getName().equals("btn_darbaja_bajas")){ dardebaja_alumno_por_clave((String)combo_bajas.getSelectedItem()); } //-- Modificaciones -- if(((JButton) control).getName().equals("btn_actualizar_modif")){ actualizar_alumno_por_clave((String)combo_modif.getSelectedItem()); } } if(control instanceof JComboBox){ //-- Bajas -- if(((JComboBox) control).getName().equals("combo_bajas")){ mostrar_registro_bajas_por_clave((String) combo_bajas.getSelectedItem()); } //-- Modificaciones -- if(((JComboBox) control).getName().equals("combo_modif")){ mostrar_registro_modif_por_clave((String) combo_modif.getSelectedItem()); } } } @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent arg0) { // TODO Auto-generated method stub System.exit(0); } @Override public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub bitCoach::Juan Bautista Cascallar Lorenzo
  • 14. } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub } } TestGestorAlumnos.java public class TestGestorAlumnos { /** * @param args */ public static void main(String[] args) { //ATRIBUTOS gestorAlumnos GA = new gestorAlumnos(); } } bitCoach::Juan Bautista Cascallar Lorenzo