Está en la página 1de 5

ISTP: Manuel Seoane Corrales

Java Swing

PRCTICA N 16 CONEXIN A UNA BASE DE DATOS, INGRESO Y VISUALIZACIN DE REGISTROS


PROBLEMA: Disea una aplicacin que permita probar el funcionamiento de un DSN (Data Source Name creado con MySql, adems que muestra y que permita ingresar registros a la base de datos.

PROCEDIMIENTO: 1. Crea la base de datos gestion en mySql y crea una tabla llamada persona de la siguiente manera: create table persona( id bigint (10) NOT NULL auto_increment, Nombre varchar(32) not null, appPaterno varchar (32) not null, appMaterno varchar (32), mail varchar (32) default '@hotmail.com', PRIMARY KEY (id) )

Lic. Bernardo C. Hermitao Atencio

ISTP: Manuel Seoane Corrales 2. Crea un proyecto con el nombre practica16 y con el paquete base. 3. Crea una clase llamada Conectacte e ingresa el siguiente cdigo:

Java Swing

package base; import java.sql.*; public class conectate { Connection conn = null; public conectate() { try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gestion","root","root"); if (conn!=null){ System.out.println("Coneccin a base de datos listo"); } }catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); } } public Connection getConnection(){ return conn; } public void desconectar(){ conn = null; } }

4. Crea una clase llamada Persona e ingresa el siguiente cdigo: package base; import com.mysql.jdbc.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Persona { Conectate con; public Persona (){ con = new Conectate(); } /*Aade un nuevo registro*/ public void NuevaPersona(String name, String ap, String am, String mail){ try { PreparedStatement pstm = (PreparedStatement) con.getConnection().prepareStatement("insert into " + "persona(Nombre, appPaterno, appMaterno, mail) " + " values(?,?,?,?)"); pstm.setString(1, name); pstm.setString(2, ap); pstm.setString(3, am); pstm.setString(4, mail); Lic. Bernardo C. Hermitao Atencio

ISTP: Manuel Seoane Corrales pstm.execute(); pstm.close(); }catch(SQLException e){ System.out.println(e); }

Java Swing

} /*obtenemos todos los datos de la tabla*/ public Object [][] getDatos(){ int registros = 0; //obtenemos la cantidad de registros existentes en la tabla try{ PreparedStatement pstm = (PreparedStatement) con.getConnection().prepareStatement("SELECT count(1) as total FROM persona "); ResultSet res = pstm.executeQuery(); res.next(); registros = res.getInt("total"); res.close(); }catch(SQLException e){ System.out.println(e); } Object[][] data = new String[registros][5]; //realizamos la consulta sql y llenamos los datos en "Object" try{ PreparedStatement pstm = (PreparedStatement) con.getConnection().prepareStatement("SELECT " + " id, Nombre, appPaterno, appMaterno, mail " + " FROM persona" + " ORDER BY id "); ResultSet res = pstm.executeQuery(); int i = 0; while(res.next()){ String estCodigo = res.getString("id"); String estNombre = res.getString("nombre"); String estpaterno = res.getString("appPaterno"); String estmaterno = res.getString("appMaterno"); String estmail = res.getString("mail"); data[i][0] = estCodigo; data[i][1] = estNombre; data[i][2] = estpaterno; data[i][3] = estmaterno; data[i][4] = estmail; i++; } res.close(); }catch(SQLException e){ System.out.println(e); } 1. return data; Ahora creamos el frame Principal: Clic derecho en el paquete proyecto15, elegimos } nuevo jFrame Form de nombre Principal. En su propiedad title escribimos un titulo y le colocamos distribucin BorderLayout.

Lic. Bernardo C. Hermitao Atencio }

ISTP: Manuel Seoane Corrales

Java Swing

5. Disea en un jFrame la siguiente ventana e ingresa los nombres de sus elementos:

6. Declara import javax.swing.table.DefaultTableModel; 7. Coloca estas lneas de cdigo. Persona p= new Persona(); Object[][] dtPer; int fila = -1; 8. Aade estos dos mtodos, el primero updateTabla(), actualiza el objeto tabla cada vez que se lo invoca, el mtodo nuevo(), su funcin es la de limpiar los jTextFields para aadir nuevos datos. private void updateTabla(){ String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "EMail"}; // se utiliza la funcion dtPer = p.getDatos(); // se colocan los datos en la tabla DefaultTableModel datos = new DefaultTableModel(dtPer,columNames); Tabla.setModel(datos); } private void nuevo(){ txtName.setText(""); txtPaterno.setText(""); txtMaterno.setText(""); txtMail.setText("tu_correo@hotmail.com"); }

Lic. Bernardo C. Hermitao Atencio

ISTP: Manuel Seoane Corrales

Java Swing

9. Aade el evento WindowOpenend al jFrame, el evento ActionPerformed a los objetos jButton y el evento MouseClicked al objeto jTable, aade el codigo que se ve abajo private void formWindowOpened(java.awt.event.WindowEvent evt) { // TODO add your handling code here: updateTabla(); nuevo(); } private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: nuevo(); } private void btnAgregarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String name = txtName.getText(); String pat = txtPaterno.getText(); String mat = txtMaterno.getText(); String mail = txtMail.getText(); p.NuevaPersona(name, pat, mat, mail); updateTabla(); } private void TablaMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: fila = Tabla.rowAtPoint(evt.getPoint()); if (fila > -1){ txtName.setText(String.valueOf(Tabla.getValueAt(fila, 1))); txtPaterno.setText(String.valueOf(Tabla.getValueAt(fila, 2))); txtMaterno.setText(String.valueOf(Tabla.getValueAt(fila, 3))); txtMail.setText(String.valueOf(Tabla.getValueAt(fila, 4))); } }

10. Compila y ejecuta el proyecto

Lic. Bernardo C. Hermitao Atencio

También podría gustarte