Uso de la sentencia LIKE de MySQL en JAVA
Que tal lectores en estos días he estado atorado en un pequeño e insignificante problema, el cual consiste en hacer una simple búsqueda en una base de datos haciendo uso de la sentencia "LIKE".
La gran mayoría sabemos (asumo que si buscas como usar la sentencia LIKE en JAVA es por que ya sabes para que sirve :D), de lo contrario va una pequeña introducción de que es LIKE, para que se utiliza y lo más importante como utilizarla en una consulta haciendo uso de JAVA.
1.- ¿Qué es la sentencia LIKE?
es una sentencia utilizada por el lenguaje SQL para hacer o realizar búsquedas por parecido , ya que se hace uso de un comodín en este caso es representado con '%' (signo de porcentaje) el cual indica todo.
2.-¿Para que se utiliza?
esta pregunta ya se respondió anteriormente es utilizada para hacer búsqueda por parecido, es decir, que contenga algo de lo que estamos buscando, por ejemplo: buscar todos los productos que empiecen por "memoria" o que contengan la palabra "memoria" dentro de su nombre o descripción, para esto se hace uso de su comodín '%' .
3.-¿Cómo utilizar la sentencia LIKE?
para hacer uso de la sentencia LIKE en java, ya debemos de tener lista la conexión con la Base de Datos desde antes, si no la tienes lista pues en el siguiente post te diré como hacer una conexión a Base de datos desde JAVA :D, si ya tienes la conexión PERFECTO!!!!! ahora lo que tenemos que hacer es lo siguiente:
1.- Tener una variable de tipo Statement, esta permite ejecutar sentencias SQL sin parámetros, la cual en mi caso llamaré setneciaSQL, esto quedaría de la siguiente forma:
private java.sql.Statement sentenciaSQL;
2.- Teniendo declarada la variable hay que tener un método que reciba el dato a buscar o frase a buscar, en mi caso el método se llama buscarProducto2 y tiene como parámetros de entrada (nArticulo de tipo String, tabla de tipo JTable, modelo de tipo DefaultTableModel ) es de tipo public y retorna un boolean (para el control).
public boolean buscarProducto2(String nArticulo,JTable tablaArticulo,DefaultTableModel modelo)
3.-Es hora de armar nuestra consulta:
- inicializamos nuestra variable sentenciaSQL, esto es de la siguiente manera : sentenciaSQL=dbConnection.createStatement();
- Creamos una variable de tipo String o cadena en mi caso con el nombre de cadena(que innovador :p), esto es de la siguiente manera: String cadena="";
- Ahora concatenamos la sentencia sql que necesitamos en mi caso queda así: cadena="SELECT idArticulo,nombre,precioNormal FROM articulo WHERE nombre LIKE '%"+nArticulo+"%'"; (en mi caso se usa el comodín '%' antes y despues del dato a buscar esto con el fin de encontrar los artículos que contengan "NO IMPORTA DONDE" la palabra o dato a buscar.
- Hora de ejecutar la sentencia para ejecutar la sentencia es muy sencillo, declaramos una variable de tipo "ResultSet" que daria de la siguiente forma: private ResultSet resultado;
- El tipo "ResultSet" almacena el conjunto de resultados, es decir, contiene las filas obtenidas al ejecutar la sentenciaSQL.
- Ahora para observar los resultados obtenidos de hacer el selec utilizando LIKE es de la siguiente manera:
while(resultado.next()){ //Aqui se evalua el resultado obtenido si hay un registro en el resultado entra
idArticulo=Integer.parseInt(resultado.getString("idArticulo").toString()); //Se obtiene el idArticulo
Object[] dato={resultado.getString("idArticulo"),resultado.getString("nombre"),resultado.getString("precioNormal")};
//Se crea un arreglo de objetos con los datos que nos interesan de la consulta
modelo.addRow(dato);//Se agrega una fila al modelo
tablaArticulo.setModel(modelo); //Se agrega una fila a la tabla mediante el modelo
if(idArticulo!=-1) //se compara el idArticulo
flag=true;//se asigna una bandera de control para saber si fue encontrado
}
Comentarios