Tenemos un archivo de base de datos Access *.MDB y queremos realizar una consulta con parámetros de búsqueda utilizando java
La base de datos tiene una sola tabla «UNIVERSITARIO» con los campos (CU, CI, Nombre, Paterno, Materno Carrera) y tiene 300 registros.
La consulta es la siguiente:
«Se desea obtener los nombres de los universitarios que estudian alguna carrera de ingeniería y su carnet universitario (cu) empieza con los números 2,4 ó 6»
Realizando la consulta en el propio Access, tenemos:
SELECT (Nombre & ' ' & Paterno & ' ' & Materno) AS NombreCompleto, Universitario.Carrera, Universitario.cu FROM Universitario WHERE (((Universitario.Carrera) Like 'Ingenieria*') AND ((Universitario.cu) Like '[2,4,6]#-####'));
Sin embargo si llamamos la anterior consulta desde Java, tendremos como resultado «o registros», debemos cambiar los comodines propios de Access y cambiarlos por los de java SQL, quedando la consulta final como:
SELECT (Nombre & ' ' & Paterno & ' ' & Materno) AS NombreCompleto, Universitario.Carrera, Universitario.cu FROM Universitario WHERE (((Universitario.Carrera) Like 'Ingenieria%') AND ((Universitario.cu) Like '[2,4,6]%'))
Creamos una clase que nos permita hacer uso de la consulta:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @web https://www.jc-mouse.net * @author Mouse */ public class AccessConsultap { //contraseña a la base de datos si es que tuviera, si no se deja vacio private String password = ""; //nombre de la base de datos Acces con extension *.mdb o *.accdb private String dbName = "dbSegUniversitario.mdb"; //direccion de la base de datos private String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password; //private String bd = "e:\\temporal\\" + dbName + ";PWD=" + password; //driver para base de datos Access 2000, 2003, 2007, 2010 private String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd; private Connection conn = null; /** * Metodo para establecer la conexion a Access */ public void conectar() { try{ //obtenemos el driver para Access Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //obtenemos la conexión conn = DriverManager.getConnection(url); //si la conexion tuvo exito if (conn!=null){ System.out.println("Conexión a base de datos "+dbName+". listo"); } }catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); } } /** * Metodo para cerrar una conexion a Access */ public void desconectar(){ try { conn.close(); System.out.println("La conexion a la base de datos " + dbName + " a terminado"); } catch (SQLException ex) { System.out.println( ex.getMessage() ); } } /** * Metodo para realizar la consulta con parametros a Access */ public void consultap() { String sql = " SELECT (Nombre & ' ' & Paterno & ' ' & Materno) AS NombreCompleto , Universitario.Carrera, Universitario.cu " + " FROM Universitario " + " WHERE (((Universitario.Carrera) Like 'Ingenieria%') AND ((Universitario.cu) Like '[2,4,6]%')) "; try{ PreparedStatement pstm = conn.prepareStatement( sql ); ResultSet res = pstm.executeQuery(); while(res.next()) { System.out.print( res.getString( "NombreCompleto" ) ); System.out.print( " | " ); System.out.print( res.getString( "Carrera" ) ); System.out.print( " | " ); System.out.println( res.getString( "cu" ) ); } res.close(); }catch( SQLException e ){ System.err.println( e.getMessage() ); } } /** * Se ejecuta la clase de consulta */ public static void main(String[] args) { AccessConsultap access = new AccessConsultap(); access.conectar(); access.consultap(); access.desconectar(); } }
El resultado
El proyecto java y la base de datos en descarga AQUI
En este post realizaremos una aplicación android que hará uso de la cámara del celular para tomar una foto y guardarla e[...]
En este post aprenderemos lo que es la clonación de objetos en java o lo que es lo mismo, generación de nuevas instancia[...]
La IA (Inteigencia Artificial) ha existido durante décadas, pero solo en estos últimos años ha ido evolucionando a pasos[...]
En este post crearemos una aplicación sencilla para mandar mensajes de texto desde android. Necesitamos IDE: Eclipse + S[...]
Agregar una imagen a un jpanel o a un jframe no es complicado pero para un programador novato puede convertirse en todo[...]
Java Media Framwork ademas de permitir reproducir archivos multimedia, tambien permite trabajar con dispositivos de capt[...]