Tutorial CRUD en Java y MySQL
Tutorial CRUD en Java y MySQL
Tabla de contenido
Requerimientos
Crear base de datos
Crear proyecto
Diseño de la vista
Conexión a MySQL
o Método para conexión
Métodos CRUD
o Método del botón para guardar
o Método del botón para buscar
o Método del botón para editar
o Método del botón para eliminar
o Método del botón limpiar
Ejecutar proyecto CRUD
Bonus
Requerimientos
JDK 8.0 o superior
MySQL 5.7 o superior
Connector/J 8.0
El proyecto se desarrollo con de IDE Apache Netbeans.
USE `escuela`;
Crear proyecto
El proyecto lo hemos desarrollado en el IDE Netbeans actualmente Apache
Netbeans. Creamos un proyecto de tipo Java Application y desmarcamos la
casilla Create Main Class:
Esto creará un proyecto vacío por lo cual agregaremos un paquete dan clic
derecho sobre el nombre del proyecto > New > Java Package y no nombramos
como app.
Diseño de la vista
Para agregar el diseño de nuestro formulario abrimos el
archivo persona.java dando doble clic, agregamos el siguiente diseño:
Descripción de los elementos
JLabel Clave
JLabel Nombre
JLabel Domicilio
JLabel Telefono
JLabel Email
JLabel Genero
JTextField txtClave
JTextField txtId
Elemento Texto Variable
JTextField txtNombre
JTextField txtDomicilio
JTextField txtTelefono
JTextField txtEmail
JTextField txtFecha
JComboBox cbxGenero
Selecciona
Masculino
Femenino
Puedes agregar más opciones. También puede agregar más elementos al
formulario según tus necesidades.
Conexión a MySQL
Para conectar Java con MySQL se necesita un controlador JDBC compatible entre
la versión JDK y MySQL. Descargar Connector/J.
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.err.println(e);
return con;
Métodos CRUD
Después de realizar la conexión a MySQL crearemos los métodos para las
transacciones básicas; Registrar, Leer o Buscar, Modificar y Eliminar. Para estos se
necesita implementar eventos de ActionListener la cual se usa para detectar y
manejar eventos de acción, como el clic en los botones.
txtClave.setText(null);
txtNombre.setText(null);
txtDomicilio.setText(null);
txtTelefono.setText(null);
txtEmail.setText(null);
txtFecha.setText(null);
cbxGenero.setSelectedIndex(0);
Connection con;
try {
con = getConection();
ps.setString(1, txtClave.getText());
ps.setString(2, txtNombre.getText());
ps.setString(3, txtDomicilio.getText());
ps.setString(4, txtTelefono.getText());
ps.setString(5, txtEmail.getText());
ps.setDate(6, Date.valueOf(txtFecha.getText()));
ps.setString(7, cbxGenero.getSelectedItem().toString());
if (res > 0) {
JOptionPane.showMessageDialog(null, "Persona Guardada");
} else {
limpiarCajas();
con.close();
System.err.println(e);
Connection con;
try {
con = getConection();
ps.setString(1, txtClave.getText());
rs = ps.executeQuery();
if (rs.next()) {
txtId.setText(rs.getString("id"));
txtNombre.setText(rs.getString("nombre"));
txtDomicilio.setText(rs.getString("domicilio"));
txtTelefono.setText(rs.getString("telefono"));
txtEmail.setText(rs.getString("correo_electronico"));
txtFecha.setText(rs.getString("fecha_nacimiento"));
cbxGenero.setSelectedItem(rs.getString("genero"));
} else {
limpiarCajas();
System.err.println(e);
Connection con;
try {
con = getConection();
ps.setString(1, txtClave.getText());
ps.setString(2, txtNombre.getText());
ps.setString(3, txtDomicilio.getText());
ps.setString(4, txtTelefono.getText());
ps.setString(5, txtEmail.getText());
ps.setDate(6, Date.valueOf(txtFecha.getText()));
ps.setString(7, cbxGenero.getSelectedItem().toString());
ps.setString(8, txtId.getText());
int res = ps.executeUpdate();
if (res > 0) {
} else {
limpiarCajas();
con.close();
System.err.println(e);
Connection con;
try {
con = getConection();
ps.setInt(1, Integer.parseInt(txtId.getText()));
if (res > 0) {
limpiarCajas();
con.close();
System.err.println(e);
limpiarCajas();
Como instrucción adicional podemos hacer que el campo de texto para guardar
temporalmente el ID del registro no sea visible. Para esto agregamos la
propiedad setVisible(false) a la variable txtId, esto será en el método
constructor después de iniciar los componentes.
public persona() {
initComponents();
txtId.setVisible(false);
Resultado
Puedes crear tu propio diseño, quitar o agregar campos al formulario y adaptarlo
a tus necesidades.