En este artículo, exploraremos cómo crear una tabla llamada “Trabajador” en MySQL y desarrollar un CRUD (Crear, Leer, Actualizar, Eliminar) en Java Swing utilizando JDBC. Este proyecto es ideal para aprender a conectar aplicaciones Java con bases de datos y gestionar información de manera eficiente.
1. Creación de la Tabla “Trabajador” en MySQL
Script SQL para la Tabla
La tabla “Trabajador” tendrá varios campos básicos como id
, nombre
, apellido
, email
, salario
, y fecha_contratacion
.
CREATE DATABASE IF NOT EXISTS Empresa;
USE Empresa;
CREATE TABLE IF NOT EXISTS Trabajador (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
salario DECIMAL(10, 2) NOT NULL,
fecha_contratacion DATE NOT NULL
);
Insertar Datos de Prueba
Podemos agregar algunos registros iniciales para probar la funcionalidad del CRUD.
INSERT INTO Trabajador (nombre, apellido, email, salario, fecha_contratacion) VALUES
('Juan', 'Pérez', 'juan.perez@example.com', 2500.50, '2021-06-15'),
('Ana', 'García', 'ana.garcia@example.com', 3000.00, '2022-01-10'),
('Luis', 'Martínez', 'luis.martinez@example.com', 2800.00, '2023-03-20');
2. Configuración del Proyecto en Java
Dependencias y Conexión JDBC
Agrega el archivo .jar
del conector MySQL (como mysql-connector-java-x.x.x.jar
) a tu proyecto Java.
Clase para la Conexión a la Base de Datos
Crea una clase que administre la conexión a la base de datos.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexion {
private static final String URL = "jdbc:mysql://localhost:3306/Empresa";
private static final String USER = "root";
private static final String PASSWORD = "tu_contraseña";
public static Connection conectar() {
try {
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("Error al conectar con la base de datos.");
}
}
}
3. Desarrollo del CRUD en Java Swing
Diseño de la Interfaz Gráfica
Crea una ventana con un formulario para capturar datos y una tabla para mostrar la lista de trabajadores.
Código del CRUD
Aquí tienes el código completo para manejar las operaciones del CRUD.
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
public class CRUDTrabajador extends JFrame {
private JTextField txtNombre, txtApellido, txtEmail, txtSalario, txtFecha;
private JTable tabla;
private DefaultTableModel modelo;
public CRUDTrabajador() {
setTitle("CRUD Trabajador");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Panel de formulario
JPanel formulario = new JPanel(new GridLayout(6, 2));
formulario.add(new JLabel("Nombre:"));
txtNombre = new JTextField();
formulario.add(txtNombre);
formulario.add(new JLabel("Apellido:"));
txtApellido = new JTextField();
formulario.add(txtApellido);
formulario.add(new JLabel("Email:"));
txtEmail = new JTextField();
formulario.add(txtEmail);
formulario.add(new JLabel("Salario:"));
txtSalario = new JTextField();
formulario.add(txtSalario);
formulario.add(new JLabel("Fecha Contratación (YYYY-MM-DD):"));
txtFecha = new JTextField();
formulario.add(txtFecha);
JButton btnGuardar = new JButton("Guardar");
formulario.add(btnGuardar);
JButton btnActualizar = new JButton("Actualizar");
formulario.add(btnActualizar);
JButton btnEliminar = new JButton("Eliminar");
formulario.add(btnEliminar);
JButton btnLimpiar = new JButton("Limpiar");
formulario.add(btnLimpiar);
add(formulario, BorderLayout.NORTH);
// Tabla
modelo = new DefaultTableModel(new String[]{"ID", "Nombre", "Apellido", "Email", "Salario", "Fecha"}, 0);
tabla = new JTable(modelo);
JScrollPane scrollPane = new JScrollPane(tabla);
add(scrollPane, BorderLayout.CENTER);
cargarDatos();
// Eventos de los botones
btnGuardar.addActionListener(e -> guardarTrabajador());
btnActualizar.addActionListener(e -> actualizarTrabajador());
btnEliminar.addActionListener(e -> eliminarTrabajador());
btnLimpiar.addActionListener(e -> limpiarFormulario());
}
private void cargarDatos() {
modelo.setRowCount(0);
try (Connection con = Conexion.conectar();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Trabajador")) {
while (rs.next()) {
modelo.addRow(new Object[]{
rs.getInt("id"),
rs.getString("nombre"),
rs.getString("apellido"),
rs.getString("email"),
rs.getDouble("salario"),
rs.getDate("fecha_contratacion")
});
}
} catch (SQLException e) {
e.printStackTrace();
}
}
private void guardarTrabajador() {
String nombre = txtNombre.getText();
String apellido = txtApellido.getText();
String email = txtEmail.getText();
double salario = Double.parseDouble(txtSalario.getText());
String fecha = txtFecha.getText();
String sql = "INSERT INTO Trabajador (nombre, apellido, email, salario, fecha_contratacion) VALUES (?, ?, ?, ?, ?)";
try (Connection con = Conexion.conectar();
PreparedStatement stmt = con.prepareStatement(sql)) {
stmt.setString(1, nombre);
stmt.setString(2, apellido);
stmt.setString(3, email);
stmt.setDouble(4, salario);
stmt.setDate(5, Date.valueOf(fecha));
stmt.executeUpdate();
cargarDatos();
limpiarFormulario();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void actualizarTrabajador() {
int fila = tabla.getSelectedRow();
if (fila == -1) {
JOptionPane.showMessageDialog(this, "Seleccione un trabajador para actualizar.");
return;
}
int id = (int) modelo.getValueAt(fila, 0);
String nombre = txtNombre.getText();
String apellido = txtApellido.getText();
String email = txtEmail.getText();
double salario = Double.parseDouble(txtSalario.getText());
String fecha = txtFecha.getText();
String sql = "UPDATE Trabajador SET nombre=?, apellido=?, email=?, salario=?, fecha_contratacion=? WHERE id=?";
try (Connection con = Conexion.conectar();
PreparedStatement stmt = con.prepareStatement(sql)) {
stmt.setString(1, nombre);
stmt.setString(2, apellido);
stmt.setString(3, email);
stmt.setDouble(4, salario);
stmt.setDate(5, Date.valueOf(fecha));
stmt.setInt(6, id);
stmt.executeUpdate();
cargarDatos();
limpiarFormulario();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void eliminarTrabajador() {
int fila = tabla.getSelectedRow();
if (fila == -1) {
JOptionPane.showMessageDialog(this, "Seleccione un trabajador para eliminar.");
return;
}
int id = (int) modelo.getValueAt(fila, 0);
String sql = "DELETE FROM Trabajador WHERE id=?";
try (Connection con = Conexion.conectar();
PreparedStatement stmt = con.prepareStatement(sql)) {
stmt.setInt(1, id);
stmt.executeUpdate();
cargarDatos();
} catch (SQLException e) {
e.printStackTrace();
}
}
private void limpiarFormulario() {
txtNombre.setText("");
txtApellido.setText("");
txtEmail.setText("");
txtSalario.setText("");
txtFecha.setText("");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new CRUDTrabajador().setVisible(true));
}
}
Conclusión
Con este ejemplo, aprendiste a:
- Crear una tabla en MySQL.
- Configurar la conexión entre Java y MySQL utilizando JDBC.
- Desarrollar un CRUD completo con Java Swing.
Este proyecto puede ampliarse para incluir validaciones, estilos avanzados o integrarse con frameworks modernos como Spring Boot para una arquitectura más robusta. ¡Manos a la obra!
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.
NUESTRAS ÚLTIMAS PUBLICACIONES
- La importancia de mantener un ritmo de estudio durante las navidades.
- Cómo Multiplicar Matrices en Java: Guía Completa con Ejemplo Práctico
- Triunfos y logros de nuestra Academia SanRoque
- Herramientas Imprescindibles para Realizar Ingeniería Inversa en Java
- ¿A qué nivel de conversación en inglés estás dispuesto a llegar con Academia SanRoque?
- Cómo Resolver una Ecuación de Segundo Grado con GNU Octave
- Cuando vienes a la Academia SaRoque justo antes del examen final.
- 25N Día Internacional para la Eliminación de la Violencia contra la Mujer
- Cuando el profesor nos da la última oportunidad.
ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido
Comments are closed