Está en la página 1de 25

2o DAM - Desarrollo de Aplicaciones Multiplataforma.

Acceso a Datos

ACTIVIDAD 2 JDBC.

En esta actividad pasaremos a trabajar con una aplicación que va a hacer uso de
dos tablas. Las tablas a crear serán las siguientes:

CLIENTES ESTÁNDAR
- Dni
- Nombre
- Apellidos
- Direccion
- Correo electrónico
- Teléfono
- Saldo

CLIENTES PREMIUM
- Dni
- Número Tarjeta Premium
- Nombre
– Apellidos
- Direccion
- Correo electrónico
- Teléfono
- Saldo
- Año Finalización Premium

La aplicación presentará un menú con las siguientes opciones (Se valorará el


uso de interfaces gráficas).

- Añadir un cliente a la base de datos. Se solicitarán los datos correspondientes y


se solicitará al usuario indicar si se trata de un cliente Premium o no, para realizar
su inserción en la tabla correspondiente. En caso de que sea un cliente Premium
se le solicitará al usuario la información añadida (número tarjeta premium, etc.)
- Mostrar la información de todos los clientes estándar.
- Mostrar la información de todos los clientes premium
- Mostrar la información de un único cliente, especificando el usuario si se trata de
un cliente estándar o premium.
- Añadir al saldo una cantidad definida por el usuario.
- Retirar del saldo una cantidad definida por el usuario.
- Editar información cliente.
- Eliminar un cliente de la base de datos.

Además será necesario añadir la opción de CAMBIAR PRIVILEGIOS. Donde se


solicitará el DNI de un cliente y si se trata de un cliente Estándar o Premium. Una vez
recibida la información se dará de baja al cliente en la tabla en la que se encontraba, y
se le dará de alta en la otra. En caso de tratarse de un usuario Estándar que va a pasar
a ser Premium, se le solicitará al usuario la información añadida (Número Tarjeta
Premium y Año Finalización Premium).

Opcional: A la hora de añadir o retirar saldo el programa realiza el cambio de


privilegios de manera automática cuando el usuario supera o bajo de los 10.000€ de
saldo. Si supera los 10.000€ de saldo automáticamente pasaría a ser cliente Premium,
si baja de los 10.000€ automáticamente pasaría a ser cliente Estándar. Se notificará
al usuario con un mensaje cuando se haya realizado un cambio de privilegios de
manera automática.

En este caso, al hacer un cambio de privilegio de manera manual a través de la


opción correspondiente del menú se ajustará el saldo de la forma adecuada.

- Si hemos pasado manualmente un usuario de Premium a Estándar se le fijará


el
saldo en 9.999€.
- Si hemos pasado manualmente un usuario de Estándar a Premium se le fijará
el
saldo en 10.001€.
INFORME A REALIZAR:

Documento en PDF que incluya:

- Código fuente completo de cada uno de los ejercicios.

- Añadir una explicación pormenorizada de cada una de las secciones del


código. Explicando qué acciones se realizan en cada línea, que variables se
están usando, qué función tiene la estructura de control utilizada, etc.

NOTA: Para la evaluación de la práctica se tendrán en cuenta 3 factores: código de la


práctica + explicación del código + informe de la práctica.
Ejecutamos la base de datos:

Se crea base de datos y tablas:


Tablas creadas:
Clase Main

package pkg2019_03_11_jdbc2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Main {

//variables para la conexión


private static Connection conn;
private static final String driver = "com.mysql.cj.jdbc.Driver";
private static final String url = "jdbc:mysql://localhost:3306/clientes?
useSSL=false&useTimezone=true&serverTimezone=UTC";
private static final String user = "root";
private static final String password = "root";

public static void main(String[] args) {


//visualizar Jframe
Ventana cliente = new Ventana();
cliente.setVisible(true);
}

public Main() throws ClassNotFoundException {


//metodo para la conexión
conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
if (conn != null) {
JOptionPane.showMessageDialog(null, "Conexion establecida...");
} else {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Connection getconexion() {
return conn;
}
Interfaz :

public class Ventana extends javax.swing.JFrame {

//Variable del tipo Connection


Connection reg;

public Ventana() {
initComponents();
//título
this.setTitle("CLIENTES");
//centrar pantalla
this.setLocationRelativeTo(null);
//para no poder redimensionar
this.setResizable(false);
//al cerrar desde la X
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
Botón conectar

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


//botón para conectar con la base de datos
try {
Main objConec = new Main();
reg = objConec.getconexion();

} catch (ClassNotFoundException ex) {


Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Botón para abrir ventana modal de introducción de datos estándar

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


//boton introducir datos Standar abre ventana modal
Standar obj = new Standar(this, true);
obj.setVisible(true);
}

Botón para abrir ventana modal de introducción de datos premium

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


//boton introducir datos Premium abre ventana modal
Premium obj = new Premium(this, true);
obj.setVisible(true);
}

Botón para mostrar usuarios estándar

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


//boton para mostrar usuarios Estandar
try {
//se crea el modelo de Jtable con el nombre de las columnas y se invoca
DefaultTableModel model = new DefaultTableModel();
model.addColumn("DNI");
model.addColumn("NOMBRE");
model.addColumn("APELLIDOS");
model.addColumn("DIRECCIÓN");
model.addColumn("EMAIL");
model.addColumn("TFNO");
model.addColumn("SALDO");
tabla.setModel(model);
tabla.removeAll();//se elimina todo lo que pueda haber en la tabla
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else {
String[] dato = new String[7];//variable array para almacenar datos de la consulta
Statement st = reg.createStatement();//crea un objeto Statement para pasar sentencias SQL a la base de
datos
String sentencia = "select * from estandar;";//consulta SQL
ResultSet rs = st.executeQuery(sentencia);//almaceno resultado de consulta en ResultSet
while (rs.next()) {//bucle mientras hayan datos
//Si hay resultados obtengo el valor
dato[0] = rs.getString(1);
dato[1] = rs.getString(2);
dato[2] = rs.getString(3);
dato[3] = rs.getString(4);
dato[4] = rs.getString(5);
dato[5] = rs.getString(6);
dato[6] = rs.getString(7);
model.addRow(dato);
}
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Botón para mostrar usuarios premium

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


//boton para mostrar usuarios premium
try {
//se crea el modelo de Jtable con el nombre de las columnas y se invoca
DefaultTableModel model = new DefaultTableModel();
model.addColumn("DNI");
model.addColumn("NºPREMIUM");
model.addColumn("NOMBRE");
model.addColumn("APELLIDOS");
model.addColumn("DIRECCIÓN");
model.addColumn("EMAIL");
model.addColumn("TFNO");
model.addColumn("SALDO");
model.addColumn("FINALIZA PREMIUM");
tabla.setModel(model);
tabla.removeAll();//se elimina todo lo que pueda haber en la tabla

if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else {
String[] dato = new String[9];//variable array para almacenar datos de la consulta
Statement st = reg.createStatement();//crea un objeto Statement para pasar sentencias SQL a la base de
datos
String sentencia = "select * from premium;";//consulta SQL
ResultSet rs = st.executeQuery(sentencia);//almaceno resultado de consulta en ResultSet
while (rs.next()) {//bucle mientras hayan datos
//Si hay resultados obtengo el valor
dato[0] = rs.getString(1);
dato[1] = rs.getString(2);
dato[2] = rs.getString(3);
dato[3] = rs.getString(4);
dato[4] = rs.getString(5);
dato[5] = rs.getString(6);
dato[6] = rs.getString(7);
dato[7] = rs.getString(8);
dato[8] = rs.getString(9);
model.addRow(dato);
}
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Botón para buscar usuario en ambas tablas según su DNI

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


//botón para buscar utilzando un where dni se crea dos consultas
try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else if (txtDni.getText().length() != 0) {
String[] dato = new String[7];
Statement st = reg.createStatement();
String sentencia = "select * from estandar where dni='" + txtDni.getText() + "';";
ResultSet rs = st.executeQuery(sentencia);

String[] dato2 = new String[9];


Statement st2 = reg.createStatement();
String sentencia2 = "select * from premium where dni ='" + txtDni.getText() + "';";
ResultSet rs2 = st2.executeQuery(sentencia2);

while (rs.next()) {
DefaultTableModel model = new DefaultTableModel();
model.addColumn("DNI");
model.addColumn("NOMBRE");
model.addColumn("APELLIDOS");
model.addColumn("DIRECCIÓN");
model.addColumn("EMAIL");
model.addColumn("TFNO");
model.addColumn("SALDO");
tabla.setModel(model);
tabla.removeAll();
dato[0] = rs.getString(1);
dato[1] = rs.getString(2);
dato[2] = rs.getString(3);
dato[3] = rs.getString(4);
dato[4] = rs.getString(5);
dato[5] = rs.getString(6);
dato[6] = rs.getString(7);
model.addRow(dato);
txtMuestra.setText("");//muestra en txt si es estándar
txtMuestra.setText("ESTANDAR");
}

while (rs2.next()) {
DefaultTableModel model = new DefaultTableModel();
model.addColumn("DNI");
model.addColumn("NºPREMIUM");
model.addColumn("NOMBRE");
model.addColumn("APELLIDOS");
model.addColumn("DIRECCIÓN");
model.addColumn("EMAIL");
model.addColumn("TFNO");
model.addColumn("SALDO");
model.addColumn("FINALIZA PREMIUM");
tabla.setModel(model);
tabla.removeAll();
dato2[0] = rs2.getString(1);
dato2[1] = rs2.getString(2);
dato2[2] = rs2.getString(3);
dato2[3] = rs2.getString(4);
dato2[4] = rs2.getString(5);
dato2[5] = rs2.getString(6);
dato2[6] = rs2.getString(7);
dato2[7] = rs2.getString(8);
dato2[8] = rs2.getString(9);
model.addRow(dato2);
txtMuestra.setText("");//muestra en el txt si es premium
txtMuestra.setText("PREMIUM");
}
} else {
JOptionPane.showMessageDialog(null, "Introduce DNI para la busqueda");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Botón para añadir saldo y los usuarios estándar pasan a premium si superan los 10000

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


//boton para añadir saldo pidiendo le dni y si la cantidad del
//usuario estandar supera los 10000
//se cambia de tabla usando los datos de la consulta y se elimina de la tabla
try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
//campo de texto de código y el corespondiente a cambiar no pueden estar vacios
} else if (txtDni.getText().length() != 0 && txtCantidad.getText().length() != 0) {

Statement st = reg.createStatement();
String sentencia = "select * from estandar where dni ='" + txtDni.getText() + "';";
ResultSet rs = st.executeQuery(sentencia);

Statement st2 = reg.createStatement();


String sentencia2 = "select saldo from premium where dni ='" + txtDni.getText() + "';";
ResultSet rs2 = st2.executeQuery(sentencia2);

while (rs.next()) {
float dato = rs.getFloat(7);
float dato2 = Float.parseFloat(txtCantidad.getText());
float suma = dato + dato2;

Statement st1 = reg.createStatement();


String sentencia1 = "update estandar set saldo ='" + suma + "' where dni='" + txtDni.getText() + "';";
st1.executeUpdate(sentencia1);
JOptionPane.showMessageDialog(null, "Saldo modificado");

if (suma > 10000) {


String dni = txtDni.getText();
String tarjeta2 = JOptionPane.showInputDialog("Introduzca un número de tarjeta:");
int tarjeta = Integer.valueOf(tarjeta2);
String nombre = rs.getString(2);
String apellido = rs.getString(3);
String direccion = rs.getString(4);
String email = rs.getString(5);
int tfno = rs.getInt(6);
float saldo = suma;
String finaliza2 = JOptionPane.showInputDialog("Introduzca año que finaliza premium:");
int finaliza = Integer.valueOf(finaliza2);
//
String query = "INSERT INTO premium
(dni,tarjeta,nombre,apellido,direccion,email,telefono,saldo,finaliza) "
+ "values ('" + dni + "','" + tarjeta + "','" + nombre + "','" + apellido + "','" + direccion + "','" +
email + "'"
+ ",'" + tfno + "','" + saldo + "','" + finaliza + "')";
Statement st3 = reg.createStatement();
st3.executeUpdate(query);
//
Statement st4 = reg.createStatement();
String sentencia4 = "delete from estandar where dni ='" + txtDni.getText() + "';";
st4.executeUpdate(sentencia4);// Ejecutar la sentencia

JOptionPane.showMessageDialog(null, "Cliente cambia a premium");


}
}
while (rs2.next()) {
float dato = rs2.getFloat(1);
float dato2 = Float.parseFloat(txtCantidad.getText());
float suma = dato + dato2;

Statement st3 = reg.createStatement();


String sentencia3 = "update premium set saldo ='" + suma + "' where dni='" + txtDni.getText() + "';";
st3.executeUpdate(sentencia3);
JOptionPane.showMessageDialog(null, "Saldo modificado");
}
} else {
JOptionPane.showMessageDialog(null, "Introduce cantidad a modificar y DNI del cliente");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Botón para retirar saldo y los usuarios premium pasan a estándar si bajan de los 10000

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


//boton para retirar saldo y si el usuario premium baja el saldo de 10000
//se cambia a la tabla estandar usando sus datos
try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
//campo de texto de código y el corespondiente a cambiar no pueden estar vacios
} else if (txtDni.getText().length() != 0 && txtCantidad.getText().length() != 0) {

Statement st = reg.createStatement();
String sentencia = "select saldo from estandar where dni ='" + txtDni.getText() + "';";
ResultSet rs = st.executeQuery(sentencia);
Statement st2 = reg.createStatement();
String sentencia2 = "select * from premium where dni ='" + txtDni.getText() + "';";
ResultSet rs2 = st2.executeQuery(sentencia2);

while (rs.next()) {
float dato = rs.getFloat(1);
float dato2 = Float.parseFloat(txtCantidad.getText());
float resta = dato - dato2;

Statement st1 = reg.createStatement();


String sentencia1 = "update estandar set saldo ='" + resta + "' where dni='" + txtDni.getText() + "';";
st1.executeUpdate(sentencia1);
JOptionPane.showMessageDialog(null, "Saldo modificado");
}
while (rs2.next()) {
float dato = rs2.getFloat(8);
float dato2 = Float.parseFloat(txtCantidad.getText());
float resta = dato - dato2;

Statement st3 = reg.createStatement();


String sentencia3 = "update premium set saldo ='" + resta + "' where dni='" + txtDni.getText() + "';";
st3.executeUpdate(sentencia3);
JOptionPane.showMessageDialog(null, "Saldo modificado");

if (resta < 10000) {


String dni = txtDni.getText();
String nombre = rs2.getString(3);
String apellido = rs2.getString(4);
String direccion = rs2.getString(5);
String email = rs2.getString(6);
int tfno = rs2.getInt(7);
float saldo = resta;
//
String query = "INSERT INTO estandar (dni,nombre,apellido,direccion,email,telefono,saldo) "
+ "values ('" + dni + "','" + nombre + "','" + apellido + "','" + direccion + "','" + email + "','" +
tfno + "','" + saldo + "')";
Statement st4 = reg.createStatement();
st4.executeUpdate(query);
//
Statement st5 = reg.createStatement();
String sentencia5 = "delete from premium where dni ='" + txtDni.getText() + "';";
st5.executeUpdate(sentencia5);// Ejecutar la sentencia

JOptionPane.showMessageDialog(null, "Cliente cambia a estandar");


}
}
} else {
JOptionPane.showMessageDialog(null, "Introduce cantidad a modificar y DNI del cliente");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

Variables

// Variables declaration - do not modify


private javax.swing.JButton btnBuscar;
private javax.swing.JButton btnConectar;
private javax.swing.JButton btnMas;
private javax.swing.JButton btnMenos;
private javax.swing.JButton btnMostrarP;
private javax.swing.JButton btnMostrarS;
private javax.swing.JButton btnPremium;
private javax.swing.JButton btnStandar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tabla;
private javax.swing.JTextField txtCantidad;
private javax.swing.JTextField txtDni;
private javax.swing.JTextField txtMuestra;
// End of variables declaration
}

Ventana modal para introducir datos de usuarios Estándar


Código
package pkg2019_03_11_jdbc2;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Standar extends javax.swing.JDialog {

Connection reg;

public Standar(java.awt.Frame parent, boolean modal) {


super(parent, modal);
initComponents();
//título
this.setTitle("CLIENTES ESTANDAR");
//centrar pantalla
this.setLocationRelativeTo(null);
//para no poder redimensionar
this.setResizable(false);

//se realiza la conexion


try {
Main objConec = new Main();
reg = objConec.getconexion();
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

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


//boton limpiar para vaciar los JtextField
txtDni.setText("");
txtNombre.setText("");
txtApellido.setText("");
txtDireccion.setText("");
txtEmail.setText("");
txtTfno.setText("");
txtSaldo.setText("");
}

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


//para cerrar solo ventana y no todo el programa en el boton salir del menu
this.dispose();
}

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


while (true) {
//se comprueba que los campos no esten vacios
if (txtDni.getText().length() == 0 || txtNombre.getText().length() == 0 || txtApellido.getText().length() == 0 ||
txtDireccion.getText().length() == 0
|| txtEmail.getText().length() == 0 || txtTfno.getText().length() == 0 || txtSaldo.getText().length() == 0)
{
JOptionPane.showMessageDialog(null, "Rellena todos los campos");
break;
} else {
try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else {
String dni = txtDni.getText();
String nombre = txtNombre.getText();
String apellido = txtApellido.getText();
String direccion = txtDireccion.getText();
String email = txtEmail.getText();
int tfno = Integer.parseInt(txtTfno.getText());
float saldo = Float.parseFloat(txtSaldo.getText());

String query = "INSERT INTO estandar (dni,nombre,apellido,direccion,email,telefono,saldo) "


+ "values ('" + dni + "','" + nombre + "','" + apellido + "','" + direccion + "','" + email + "'"
+ ",'" + tfno + "','" + saldo + "')";
Statement st = reg.createStatement();
st.executeUpdate(query);
JOptionPane.showMessageDialog(null, "Datos Introducidos");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
}
}

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


try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
//campo de texto de código y el corespondiente a cambiar no pueden estar vacios
} else if (txtDni.getText().length() != 0 && txtNombre.getText().length() != 0) {
Statement st = reg.createStatement();
String sentencia = "update estandar set nombre ='" + txtNombre.getText() + "' where dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtApellido.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "update estandar set apellido ='" + txtApellido.getText() + "' where dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtDireccion.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE estandar SET direccion='" + txtDireccion.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtEmail.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE estandar SET email='" + txtEmail.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtTfno.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE estandar SET telefono='" + txtTfno.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtSaldo.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE estandar SET saldo='" + txtSaldo.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else {
JOptionPane.showMessageDialog(null, "Introduce DNI y dato a modificar");
}

} catch (SQLException ex) {


Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

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


try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else if (txtDni.getText().length() != 0) {//si el campo de texto no está vacío se ejecuta
Statement st = reg.createStatement();
String sentencia = "delete from estandar where dni ='" + txtDni.getText() + "';";
st.executeUpdate(sentencia);// Ejecutar la sentencia
JOptionPane.showMessageDialog(null, "Cliente eliminado");

} else {
JOptionPane.showMessageDialog(null, "Introduce DNI");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

// Variables declaration - do not modify


private javax.swing.JButton btnEliminar;
private javax.swing.JButton btnIntro;
private javax.swing.JButton btnLimpiar;
private javax.swing.JButton btnSalir;
private javax.swing.JButton btnUpdate;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField txtApellido;
private javax.swing.JTextField txtDireccion;
private javax.swing.JTextField txtDni;
private javax.swing.JTextField txtEmail;
private javax.swing.JTextField txtNombre;
private javax.swing.JTextField txtSaldo;
private javax.swing.JTextField txtTfno;
// End of variables declaration
}

Ventana para introducir datos de usuarios premium


Código
package pkg2019_03_11_jdbc2;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Premium extends javax.swing.JDialog {

Connection reg;

public Premium(java.awt.Frame parent, boolean modal) {


super(parent, modal);
initComponents();
//título
this.setTitle("CLIENTES PREMIUM");
//centrar pantalla
this.setLocationRelativeTo(null);
//para no poder redimensionar
this.setResizable(false);

//se realiza la conexion


try {
Main objConec = new Main();
reg = objConec.getconexion();
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
//boton limpiar para vaciar los JtextField
txtDni.setText("");
txtTarjeta.setText("");
txtNombre.setText("");
txtApellido.setText("");
txtDireccion.setText("");
txtEmail.setText("");
txtTfno.setText("");
txtSaldo.setText("");
txtFinaliza.setText("");
}

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


//para cerrar solo ventana y no todo el programa en el boton salir del menu
this.dispose();
}

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


while (true) {
//se comprueba que los campos no esten vacios
if (txtDni.getText().length() == 0 || txtTarjeta.getText().length() == 0 || txtNombre.getText().length() == 0 ||
txtApellido.getText().length() == 0 || txtDireccion.getText().length() == 0
|| txtEmail.getText().length() == 0 || txtTfno.getText().length() == 0 || txtSaldo.getText().length() == 0 ||
txtFinaliza.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "Rellena todos los campos");
break;
} else {
try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else {
String dni = txtDni.getText();
int tarjeta = Integer.parseInt(txtTarjeta.getText());
String nombre = txtNombre.getText();
String apellido = txtApellido.getText();
String direccion = txtDireccion.getText();
String email = txtEmail.getText();
int tfno = Integer.parseInt(txtTfno.getText());
float saldo = Float.parseFloat(txtSaldo.getText());
int finaliza = Integer.parseInt(txtFinaliza.getText());

String query = "INSERT INTO premium


(dni,tarjeta,nombre,apellido,direccion,email,telefono,saldo,finaliza) "
+ "values ('" + dni + "','" + tarjeta + "','" + nombre + "','" + apellido + "','" + direccion + "','" +
email + "'"
+ ",'" + tfno + "','" + saldo + "','" + finaliza + "')";
Statement st = reg.createStatement();
st.executeUpdate(query);
JOptionPane.showMessageDialog(null, "Datos Introducidos");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
}
}

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


try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
//campo de texto de código y el corespondiente a cambiar no pueden estar vacios
} else if (txtDni.getText().length() != 0 && txtTarjeta.getText().length() != 0) {
Statement st = reg.createStatement();
String sentencia = "update premium set tarjeta ='" + txtTarjeta.getText() + "' where dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtNombre.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "update premium set nombre ='" + txtNombre.getText() + "' where dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtApellido.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "update premium set apellido ='" + txtApellido.getText() + "' where dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtDireccion.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE premium SET direccion='" + txtDireccion.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtEmail.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE premium SET email='" + txtEmail.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtTfno.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE premium SET telefono='" + txtTfno.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtSaldo.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE premium SET saldo='" + txtSaldo.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else if (txtDni.getText().length() != 0 && txtFinaliza.getText().length() != 0) {


Statement st = reg.createStatement();
String sentencia = "UPDATE premium SET finaliza='" + txtFinaliza.getText() + "' WHERE dni='" +
txtDni.getText() + "';";
st.executeUpdate(sentencia);
JOptionPane.showMessageDialog(null, "Datos cliente modificados");

} else {
JOptionPane.showMessageDialog(null, "Introduce DNI y dato a modificar");
}

} catch (SQLException ex) {


Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

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


try {
if (reg == null) {
JOptionPane.showMessageDialog(null, "Conexion NO establecida...");
} else if (txtDni.getText().length() != 0) {//si el campo de texto no está vacío se ejecuta
Statement st = reg.createStatement();
String sentencia = "delete from premium where dni ='" + txtDni.getText() + "';";
st.executeUpdate(sentencia);// Ejecutar la sentencia
JOptionPane.showMessageDialog(null, "Cliente eliminado");

} else {
JOptionPane.showMessageDialog(null, "Introduce DNI");
}
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnEliminar;
private javax.swing.JButton btnIntro;
private javax.swing.JButton btnLimpiar;
private javax.swing.JButton btnModificar;
private javax.swing.JButton btnSalir;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField txtApellido;
private javax.swing.JTextField txtDireccion;
private javax.swing.JTextField txtDni;
private javax.swing.JTextField txtEmail;
private javax.swing.JTextField txtFinaliza;
private javax.swing.JTextField txtNombre;
private javax.swing.JTextField txtSaldo;
private javax.swing.JTextField txtTarjeta;
private javax.swing.JTextField txtTfno;
// End of variables declaration
}

También podría gustarte