Contenu connexe Similaire à Java::Acceso a Bases de Datos (20) Java::Acceso a Bases de Datos1. 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