1.- Se crea una base de datos en MySQL, para este ejemplo se creara una BD llamada prueba1 que tendrá una tabla donde se almacenaran el nombre y apellidos de una persona.
USE prueba1;
CREATE TABLE IF NOT EXISTS tabla1 (
id_tabla1 int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
nombre varchar(30) NOT NULL,
ap_paterno varchar(30) NOT NULL,
ap_materno varchar(30) NOT NULL
);
INSERT INTO tabla1 (nombre,ap_paterno,ap_materno) VALUES ('sandra', 'molina', 'lopez');
2.- Ya que se tiene la base de datos se crea una interfaz gráfica con los siguientes componentes:
import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement;
5.- Dentro de la clase se declaran las siguientes variables:
private Connection conexion;
private Statement st;
private ResultSet rs;
6.- El siguiente código crea un método que realiza la conexión con la base de datos, posteriormente realiza una consulta para almacenar todos los registros de la tabla1, y posteriormente selecciona el primero para mostrarlo en las cajas de texto creadas anteriormente.
public void Conectar(){
try{
conexion=DriverManager.getConnection("jdbc:mysql://localhost/prueba1","root","");
st=conexion.createStatement();
rs=st.executeQuery("Select * from tabla1");
rs.next();
this.jtf_id_tabla1.setText(rs.getString("id_tabla1"));
this.jtf_nombre.setText(rs.getString("nombre"));
this.jtf_ap_paterno.setText(rs.getString("ap_paterno"));
this.jtf_ap_materno.setText(rs.getString("ap_materno"));
}catch(SQLException err){
JOptionPane.showMessageDialog(null,"Error "+err.getMessage());
}
}
Los métodos para desplazarse entre los registros almacenados en el ResultSet (rs) son;
rs.next(); // Siguiente registro
rs.previous(); //Registro anterior
rs.first(); //Primer registro
rs.last(); //Último registro
private void siguienteRegistro{ try{ if(rs.isLast()==false) { rs.next(); this.jtf_id_tabla1.setText(rs.getString("id_tabla1")); this.jtf_nombre.setText(rs.getString("nombre")); this.jtf_ap_paterno.setText(rs.getString("ap_paterno")); this.jtf_ap_materno.setText(rs.getString("ap_materno")); } }catch(Exception err) { JOptionPane.showMessageDialog(null,"Error "+err.getMessage()); } }
Estos métodos serán llamados dentro del evento clic del botón correspondiente.
8.- Para guardar un registro nuevo, se almacenan los valores en variables String y posteriormente se genera la consulta Insert concatenando el código SQL con los valores de las textField, hay que tener en cuenta que como son valores varchar estos en SQL deben ir entre ", así que en Java se concatenan usado ', véanse los ' de color rojo en el siguiente código.
private void guadarRegistro() {
try{
String nombre=this.jtf_nombre.getText();
String ap_paterno=this.jtf_ap_paterno.getText();
String ap_materno=this.jtf_ap_materno.getText();
st.executeUpdate("Insert into tabla1 (nombre,ap_paterno,ap_materno)"+" values ('"+ nombre +"','"+ap_paterno+"','"+ap_materno+"');");
this.primerRegistro();
} catch(SQLException err) {
JOptionPane.showMessageDialog(null,"Error "+err.getMessage());
}
}
9.- Borrar registro
private void borrarRegistro(){
try{
st.executeUpdate("delete from tabla1 where id_tabla1="+this.jtf_id_tabla1.getText());
this.primerRegistro();
} catch(SQLException err){
JOptionPane.showMessageDialog(null,"Error "+err.getMessage());
}
}
Comentarios