Al final pueden descargar el proyecto....... es muy sencillo pero será de mucha útilidad.
En el vídeo pueden ver como realizo el proceso paso a paso, a continuación explicaré las principales clases de nuestro sistema y al final compartiré el enlace de descarga para que puedan obtener la información.
Igual que en la entrada anterior tendremos una estructura de proyecto muy similar, está será compuesta por una clase conexión, la ventana de consulta, la clase con el main y los correspondientes Dao y Vo.
La base de datos será la misma trabajada en ejemplos anteriores, para esto es importante tener en cuenta que se debe vincular el driver mysql para que se establezca la conexión con la BD, si no sabes como se realiza el proceso te comparto este otro video con el paso a paso...
Script BD
Este script es el mismo usado en el ejemplo anterior...
CREATE DATABASE codejavu; /*Table structure for table `persona` */ CREATE TABLE `persona` ( `id` int(10) NOT NULL, `nombre` varchar(30) DEFAULT NULL, `edad` int(3) DEFAULT NULL, `profesion` varchar(30) DEFAULT NULL, `telefono` decimal(10,0) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; insert into `persona`(`id`,`nombre`,`edad`,`profesion`,`telefono`) values (111,'admin',25,'Ingeniero','5555'),(123,'Cristian David Henao',28,'Instructor','34566'),(258,'Carlos Andrés Henao',25,'Ingeniero','4567');PersonaVO.java
Esta clase igual que el ejemplo anterior, será la encargada de tener el equivalente a las tablas de nuestra base de datos, en este caso como el proyecto cuenta solo con una tabla "persona" generamos la clase PersonaVO con los atributos correspondientes a los campos de nuestra tabla.
package vo; public class PersonaVo { private Integer idPersona; private String nombrePersona; private Integer edadPersona; private String profesionPersona; private Integer telefonoPersona; /** * @return the idPersona */ public Integer getIdPersona() { return idPersona; } /** * @param idPersona the idPersona to set */ public void setIdPersona(Integer idPersona) { this.idPersona = idPersona; } /** * @return the nombrePersona */ public String getNombrePersona() { return nombrePersona; } /** * @param nombrePersona the nombrePersona to set */ public void setNombrePersona(String nombrePersona) { this.nombrePersona = nombrePersona; } /** * @return the edadPersona */ public Integer getEdadPersona() { return edadPersona; } /** * @param edadPersona the edadPersona to set */ public void setEdadPersona(Integer edadPersona) { this.edadPersona = edadPersona; } /** * @return the profesionPersona */ public String getProfesionPersona() { return profesionPersona; } /** * @param profesionPersona the profesionPersona to set */ public void setProfesionPersona(String profesionPersona) { this.profesionPersona = profesionPersona; } /** * @return the telefonoPersona */ public Integer getTelefonoPersona() { return telefonoPersona; } /** * @param telefonoPersona the telefonoPersona to set */ public void setTelefonoPersona(Integer telefonoPersona) { this.telefonoPersona = telefonoPersona; } }PersonaDAO.java
De la misma manera esta clase será la encargada de centralizar todo el acceso a la tabla "persona" de nuestra base de datos, en este caso contará con el método consultarListaPersona() que obtendrá la información de nuestra tabla
package dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import javax.swing.JOptionPane; import vo.PersonaVo; import conexion.Conexion; /** * Clase que permite el acceso a la base de datos * * @author chenao * */ public class PersonaDao { public ArrayListConexion.javabuscarUsuariosConMatriz() { Conexion conex = new Conexion(); ArrayList miLista = new ArrayList (); PersonaVo persona; try { Statement estatuto = conex.getConnection().createStatement(); ResultSet rs = estatuto.executeQuery("SELECT * FROM persona "); while (rs.next()) { persona = new PersonaVo(); persona.setIdPersona(Integer.parseInt(rs.getString("id"))); persona.setNombrePersona(rs.getString("nombre")); persona.setEdadPersona(Integer.parseInt(rs.getString("edad"))); persona.setProfesionPersona(rs.getString("profesion")); persona.setTelefonoPersona(Integer.parseInt(rs.getString("telefono"))); miLista.add(persona); } rs.close(); estatuto.close(); conex.desconectar(); } catch (SQLException e) { System.out.println(e.getMessage()); JOptionPane.showMessageDialog(null, "Error al consultar", "Error", JOptionPane.ERROR_MESSAGE); } return miLista; } }
Encargada de establecer la conexión con nuestra base de datos.
package conexion; import java.sql.*; /** * Clase que permite conectar con la base de datos * @author chenao * */ public class Conexion { static String bd = "codejavu"; static String login = "root"; static String password = ""; static String url = "jdbc:mysql://localhost/"+bd; Connection conn = null; /** Constructor de DbConnection */ public Conexion() { try{ //obtenemos el driver de para mysql Class.forName("com.mysql.jdbc.Driver"); //obtenemos la conexión conn = DriverManager.getConnection(url,login,password); if (conn!=null){ //System.out.println("Conección a base de datos "+bd+" OK"); } } catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); }catch(Exception e){ System.out.println(e); } } /**Permite retornar la conexión*/ public Connection getConnection(){ return conn; } public void desconectar(){ conn = null; } }
VentanaConsulta.java
Esta ventana presentará la tabla con la información, la cual se cargará inmediatamente, también contará con el botón que ejecutará el evento para obtener la información en caso de que la base de datos sea actualizada, todo este proceso se realiza en los métodos construirTabla() encargado de armar nuestra tabla y el método obtenerMatriz() el cual hace el llamado a nuestro DAO y asigna la información al JTable.
package ventanas; import java.awt.event.ActionEvent; public class VentanaConsulta extends JFrame implements ActionListener { private JLabel labelTitulo; JTable miTabla1; JScrollPane mibarra1; private JButton btnNewButton; /** * constructor de la clase donde se inicializan todos los componentes de la * ventana de registro */ public VentanaConsulta() { setSize(462, 281); setTitle("CoDejaVu : Componentes JTable"); setLocationRelativeTo(null); setResizable(false); inicializaComponentes(); construirTabla(); } private void inicializaComponentes() { getContentPane().setLayout(null); labelTitulo = new JLabel(); labelTitulo.setBounds(27, 11, 400, 30); labelTitulo.setHorizontalAlignment(SwingConstants.CENTER); labelTitulo.setText("CONSULTA DE PERSONAS"); labelTitulo.setFont(new java.awt.Font("Verdana", 1, 18)); getContentPane().add(labelTitulo); mibarra1=new JScrollPane(); mibarra1.setBounds(27, 72,400,130); getContentPane().add(mibarra1); btnNewButton = new JButton("Actualizar"); btnNewButton.setBounds(335, 219, 89, 23); getContentPane().add(btnNewButton); btnNewButton.addActionListener(this); } private void construirTabla() { String titulos[]={ "Codigo", "Nombre", "Edad", "Profesión","Telefono" }; String informacion[][]=obtenerMatriz(); miTabla1=new JTable(informacion,titulos); mibarra1.setViewportView(miTabla1); } private String[][] obtenerMatriz() { PersonaDao miPersonaDao=new PersonaDao(); ArrayListPrincipal.javamiLista=miPersonaDao.buscarUsuariosConMatriz(); String matrizInfo[][]=new String[miLista.size()][5]; for (int i = 0; i < miLista.size(); i++) { matrizInfo[i][0]=miLista.get(i).getIdPersona()+""; matrizInfo[i][1]=miLista.get(i).getNombrePersona()+""; matrizInfo[i][2]=miLista.get(i).getProfesionPersona()+""; matrizInfo[i][3]=miLista.get(i).getEdadPersona()+""; matrizInfo[i][4]=miLista.get(i).getTelefonoPersona()+""; } return matrizInfo; } @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==btnNewButton) { construirTabla(); } } }
Por ultimo tenemos la clase principal la cual consiste simplemente en el metodo main() que perimitirá iniciar el sistema.
package principal; import ventanas.VentanaConsulta; public class Principal { /** * Llama la ventana principal * @param args */ public static void main(String[] args) { VentanaConsulta miVentanaConsulta; miVentanaConsulta= new VentanaConsulta(); miVentanaConsulta.setVisible(true); } }Y listo, básicamente aquí podemos ver de forma rapida como obtener la información de la base de datos y presentarla en nuestro componente JTable...
Descarga!!!
El ejemplo es muy simple, sin mayores complicaciones, aquí dejo el enlace de descarga por si lo quieren revisar ;)..está en Eclipse pero si usas NetBeans te interesará esta entrada con un vídeo paso a paso de como abrirlo en el....... recuerden que es gratis, y nada cuesta opinar, compartir o agradecer :)
También te podría Interesar.
- Como llenar un JComboBox desde Bases de Datos
- Como Importar Proyectos Eclipse en Netbeans
- Redimensionar imagen en Java
- Componentes de Texto.
- Componentes Atomicos Java Swing
- Componentes Java Swing
- Que es Java Swing?
- Uso Básico de JComboBox en Java
- RadioButton en Java
- Conceptos Básicos de Programación Orientada a Objetos.
¿Hay algo que quieras anexar o comentar sobre esta entrada? no dudes en hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)
hol
ResponderEliminarCapo Gracias !!!! por tus aportes xd
ResponderEliminarGracias fue de mucha ayuda
ResponderEliminarwooooo mejor imposible henao saludos
ResponderEliminar:)
ResponderEliminarhola amigo como estas, son geniales tus tutoriales, tengo una consulta para hacerte. si deseo realizar esto, en un desk debo crear cada clase en un JInternalFrame?
ResponderEliminarCon este codigo logre entender que era mi error... gracias
ResponderEliminarYour Topic on J table is really fascinating and how you managed lay down each pointer is also really intriguing and it has made information really understandable for me and many others who are going to read this article, you must check out data science course in bangalore they have a lot to offer with regards to data science in terms of helping you gain a basic understanding through theoretical knowledge and provide live projects where you will be getting practical experience as well, they also guide freshed and professionals who want to make a career change in the domain that will be well suited for them.
ResponderEliminarMil, pero mil gracias por compartir tus conocimientos Maestro.
ResponderEliminar