Curso De Java: Cómo Hago El Botón Buscar?
Wednesday, July 15, 2015
Una de las grandes ventajas que nos ofrece el uso de un sistema de información en nuestra empresa y/o negocio, además de almacenar y/o guardar información en una base de datos, es el poder realizar consultas de todos esos datos guardados, de una manera rápida y eficaz.
Si bien es cierto, que aún muchas personas son reacias a que en su trabajo implanten un software para gestionar y manejar ciertos procesos, ellos no pueden "tapar el sol con una mano", y negar que es mucho más óptimo dar unos cuantos clics para tener a la mano toda la información que un determinado cliente u otra persona les solicite, que preferir buscar en una "pila o montaña de papel" que de verdad resulta muy tedioso y muy pero muy poco óptimo e insatisfactorio.
En este decimosexto capítulo de nuestro Curso de JAVA, veremos la creación e implementación de un área de búsqueda que le permitirá a los usuarios de nuestro software, realizar consultas de información previamente guardada en la base de datos, para su posterior verificación y uso.
Explicación por Videotutorial:
Explicación por Foto-Tutorial:
*Dirígete a tu formulario, y agrega 5 componentes, así:
-1 JLabel (Etiqueta): Le cambiaremos el texto y le colocaremos “Buscar por:”.
-1 JComboBox (Lista desplegable): Procede a asignar una serie de valores predeterminados al ComboBox, los cuales equivalen a los nombres de las columnas de la tabla que agregaremos a nuestro formulario, pero en esta oportunidad sólo asignaremos 3 de los campos del JTable (“Nombres”, “Apellidos”, y “Ciudad”); luego, cambiamos el nombre de la variable de dicho elemento, en este caso le pondremos “cboxFiltro”.
Este componente, cumplirá con la función de ayudarnos a filtrar la búsqueda de información, realizando las consultas en un determinado campo de nuestra tabla de la base de datos.
-1 JTextField (Campo de texto): Eliminaremos el texto que trae por defecto; luego, modificaremos el nombre de la variable de dicho elemento, en este caso le pondremos “txtValorbusqueda”.
Todo lo que se escriba en este elemento, será lo que se busque en un determinado campo (de acuerdo a lo seleccionado en el ComboBox) de la tabla ubicada en la base de datos.
-1 JButton (Botón): Modificamos el texto que trae por defecto y le colocamos “Buscar”; a continuación, cambiaremos el nombre de la variable de dicho elemento, en este caso le pondremos “btnBuscar”.
Al presionar este elemento, se ejecutará la consulta de información en la base de datos.
-1 JTable (Tabla): Configuramos y establecemos el diseño y estructura de nuestra tabla; en otras palabras, le asignamos un número de columnas con sus respectivos nombres y/o títulos, eliminamos también todas las filas que esta traiga por defecto; posteriormente, alteramos el nombre de la variable del JTable, en este caso le pondremos “tblDatos”. Aquí se mostrarán todos los registros que coincidan con la búsqueda y/o consulta lanzada desde nuestro programa:
-1 JLabel (Etiqueta): Le cambiaremos el texto y le colocaremos “Buscar por:”.
-1 JComboBox (Lista desplegable): Procede a asignar una serie de valores predeterminados al ComboBox, los cuales equivalen a los nombres de las columnas de la tabla que agregaremos a nuestro formulario, pero en esta oportunidad sólo asignaremos 3 de los campos del JTable (“Nombres”, “Apellidos”, y “Ciudad”); luego, cambiamos el nombre de la variable de dicho elemento, en este caso le pondremos “cboxFiltro”.
Este componente, cumplirá con la función de ayudarnos a filtrar la búsqueda de información, realizando las consultas en un determinado campo de nuestra tabla de la base de datos.
-1 JTextField (Campo de texto): Eliminaremos el texto que trae por defecto; luego, modificaremos el nombre de la variable de dicho elemento, en este caso le pondremos “txtValorbusqueda”.
Todo lo que se escriba en este elemento, será lo que se busque en un determinado campo (de acuerdo a lo seleccionado en el ComboBox) de la tabla ubicada en la base de datos.
-1 JButton (Botón): Modificamos el texto que trae por defecto y le colocamos “Buscar”; a continuación, cambiaremos el nombre de la variable de dicho elemento, en este caso le pondremos “btnBuscar”.
Al presionar este elemento, se ejecutará la consulta de información en la base de datos.
-1 JTable (Tabla): Configuramos y establecemos el diseño y estructura de nuestra tabla; en otras palabras, le asignamos un número de columnas con sus respectivos nombres y/o títulos, eliminamos también todas las filas que esta traiga por defecto; posteriormente, alteramos el nombre de la variable del JTable, en este caso le pondremos “tblDatos”. Aquí se mostrarán todos los registros que coincidan con la búsqueda y/o consulta lanzada desde nuestro programa:
*Ya con nuestro formulario listo, nos ubicaremos en nuestro paquete “Metodos”, y creamos la Clase “MetodosBD”:
Deberás copiar y pegar las siguientes librerías, para que el código funcione:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
NOTA: Recuerda pegar dichas librerías después de la línea de código que representa el nombre del paquete (ej. package Metodos;) y sobre la línea de código que identifica el nombre de tu Clase (ej. public class MetodosBD{...).
*Luego, copia y pega el siguiente código, dentro de las llaves de apertura “{” y de cierre “}” de la Clase “MetodosBD”:
Pool metodospool = new Pool(); DefaultTableModel ModeloTabla; public void Buscar(String valor, String filtro, JTable tablacontactos){ String [] columnas={"ID","Nombres","Apellidos","Email","Celular", "Dirección", "Ciudad"}; String [] registro=new String[7]; ModeloTabla=new DefaultTableModel(null,columnas); String SSQL; Connection conect = null; if(filtro.equals("Apellidos")){ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE apellidos LIKE '%"+valor+"%'"; }else if(filtro.equals("Email")){ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE email LIKE '%"+valor+"%'"; }else{ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE celular LIKE '%"+valor+"%'"; } try { conect = metodospool.dataSource.getConnection(); PreparedStatement st = conect.prepareStatement(SSQL); ResultSet rs = st.executeQuery(); while (rs.next()){ registro[0]=rs.getString("id_contacto"); registro[1]=rs.getString("nombres"); registro[2]=rs.getString("apellidos"); registro[3]=rs.getString("email"); registro[4]=rs.getString("celular"); registro[5]=rs.getString("direccion"); registro[6]=rs.getString("ciudad"); ModeloTabla.addRow(registro); } tablacontactos.setModel(ModeloTabla); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e, "Error durante el procedimiento", JOptionPane.ERROR_MESSAGE); }finally{ if(conect!=null){ try { conect.close(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex, "Error de desconexión", JOptionPane.ERROR_MESSAGE); } } } }
NOTA: Lo que representa este código, es la creación de un método que hemos llamado “Buscar”; el cual, como su nombre lo indica, es el que nos va a permitir realizar las consultas en nuestra tabla de la base de datos, para que de esta manera el usuario del software pueda obtener la información requerida.
Como vemos, este es un método que necesita de otra Clase (Pool), para realizar la conexión con la base de datos; además, se procede a usar un objeto “DefaultTableModel”, que nos va a permitir manipular el contenido de nuestro JTable.
Si deseas tener una explicación detallada línea por línea del anterior código, puedes dirigirte al siguiente artículo:
"Código JAVA: Consultar información en una Base de datos y mostrarla en un JTable".
NOTA: Algo muy importante a tener en cuenta de este método, es la parte de la sentencia SQL que hemos de establecer para realizar nuestra consulta a la Base de datos. Si necesitas conocer un poco más sobre la estructura de este tipo de sentencia, dirígete al post donde te lo explicamos, sólo da clic en el enlace:
"Sentencia SQL: Consultar registros específicos de una tabla (Condicional WHERE)".
*Teniendo en cuenta todo lo anterior, nuestra Clase “MetodosBD” quedaría de la siguiente forma:
Como vemos, este es un método que necesita de otra Clase (Pool), para realizar la conexión con la base de datos; además, se procede a usar un objeto “DefaultTableModel”, que nos va a permitir manipular el contenido de nuestro JTable.
Si deseas tener una explicación detallada línea por línea del anterior código, puedes dirigirte al siguiente artículo:
"Código JAVA: Consultar información en una Base de datos y mostrarla en un JTable".
NOTA: Algo muy importante a tener en cuenta de este método, es la parte de la sentencia SQL que hemos de establecer para realizar nuestra consulta a la Base de datos. Si necesitas conocer un poco más sobre la estructura de este tipo de sentencia, dirígete al post donde te lo explicamos, sólo da clic en el enlace:
"Sentencia SQL: Consultar registros específicos de una tabla (Condicional WHERE)".
*Teniendo en cuenta todo lo anterior, nuestra Clase “MetodosBD” quedaría de la siguiente forma:
package Metodos; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class MetodosBD { Pool metodospool = new Pool(); DefaultTableModel ModeloTabla; public void Buscar(String valor, String filtro, JTable tablacontactos){ String [] columnas={"ID","Nombres","Apellidos","Email","Celular", "Dirección", "Ciudad"}; String [] registro=new String[7]; ModeloTabla=new DefaultTableModel(null,columnas); String SSQL; Connection conect = null; if(filtro.equals("Apellidos")){ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE apellidos LIKE '%"+valor+"%'"; }else if(filtro.equals("Email")){ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE email LIKE '%"+valor+"%'"; }else{ SSQL= "SELECT id_contacto, nombres, apellidos, email, celular, direccion, ciudad " + "FROM contacto WHERE celular LIKE '%"+valor+"%'"; } try { conect = metodospool.dataSource.getConnection(); PreparedStatement st = conect.prepareStatement(SSQL); ResultSet rs = st.executeQuery(); while (rs.next()){ registro[0]=rs.getString("id_contacto"); registro[1]=rs.getString("nombres"); registro[2]=rs.getString("apellidos"); registro[3]=rs.getString("email"); registro[4]=rs.getString("celular"); registro[5]=rs.getString("direccion"); registro[6]=rs.getString("ciudad"); ModeloTabla.addRow(registro); } tablacontactos.setModel(ModeloTabla); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e, "Error durante el procedimiento", JOptionPane.ERROR_MESSAGE); }finally{ if(conect!=null){ try { conect.close(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex, "Error de desconexión", JOptionPane.ERROR_MESSAGE); } } } } }
*Ahora, vamos a dirigirnos nuevamente a nuestro formulario JAVA, y daremos doble clic (seguidos) sobre nuestro botón “Buscar”, para que de esta manera accedamos a la parte del código, más exactamente dentro del Evento que se ejecutará todos los códigos que allí se coloquen (una vez se pulse sobre el botón “Buscar”):
Puedes colocarla afuera (arriba) del método del botón, pues esto es lo más recomendable, ya que posiblemente necesites usar otros métodos creados en la Clase “MetodosBD” y por consiguiente ya no tendrás que instanciarla nuevamente para hacer uso de los mismos, sino que tan sólo con instanciarla una sola vez, bastará.
*Ahora sólo debemos ejecutar nuestro proyecto y/o formulario, diligenciar los campos con los datos correspondientes y pulsar el botón “Buscar”, de esta manera se nos mostrarán en la tabla, los registros que coincidan con la consulta ejecutada:
Ahora bien, si necesitas ver cada dato de una forma más detallada y completa, puedes asignar la funcionalidad de que cuando des clic en la tabla, se te muestren dichos datos en los respectivos campos de tu formulario, ¿deseas saber cómo hacerlo?, entonces da clic aquí.
Si deseas descargar el vídeo, junto con el fascículo (PDF) del presente tema, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 16".
Para ver la Parte 15 del Curso, puedes dar clic en el siguiente enlace: "Curso de JAVA: Cómo hago el botón Guardar?"
Para ampliar más tus conocimientos en cuanto a desarrollar software usando JAVA, puedes ver todos los capítulos de "Cómo lo hago en JAVA?"
*Borraremos el comentario que está allí por defecto, y colocaremos el siguiente código:
MetodosBD metodosbd = new MetodosBD();
metodosbd.Buscar(txtValorbusqueda.getText(), cboxFiltro.getSelectedItem().toString(), tblDatos);
*Lo que hacemos es instanciar un objeto de la Clase “MetodosBD” y posteriormente se procede a llamar al método “Buscar”, pasándole los respetivos parámetros, los cuales se capturan de los componentes del formulario en el que nos encontramos, los cuales agregamos al inicio (JComboBox, JTextField, y JTable).
Si deseas obtener una explicación detallada línea por línea del código anterior, puedes visitar el siguiente link: "Consultar información en una Base de datos y mostrarla en un JTable".
NOTA: Si lo deseas, la línea de código:
Si deseas obtener una explicación detallada línea por línea del código anterior, puedes visitar el siguiente link: "Consultar información en una Base de datos y mostrarla en un JTable".
NOTA: Si lo deseas, la línea de código:
MetodosBD metodosbd = new MetodosBD();
Puedes colocarla afuera (arriba) del método del botón, pues esto es lo más recomendable, ya que posiblemente necesites usar otros métodos creados en la Clase “MetodosBD” y por consiguiente ya no tendrás que instanciarla nuevamente para hacer uso de los mismos, sino que tan sólo con instanciarla una sola vez, bastará.
*Ahora sólo debemos ejecutar nuestro proyecto y/o formulario, diligenciar los campos con los datos correspondientes y pulsar el botón “Buscar”, de esta manera se nos mostrarán en la tabla, los registros que coincidan con la consulta ejecutada:
Si deseas descargar el vídeo, junto con el fascículo (PDF) del presente tema, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 16".
Para ampliar más tus conocimientos en cuanto a desarrollar software usando JAVA, puedes ver todos los capítulos de "Cómo lo hago en JAVA?"
¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips que hemos estado publicando en este blog, dando clic aquí.
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos. Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...