Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Access / Base de Datos / Java / Consultas con parámetros en Access y Java

Consultas con parámetros en Access y Java

Por jc mouse martes, febrero 26, 2013

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.

access java

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

access like

El proyecto java y la base de datos en descarga AQUI

Tags

Artículos similares

ANSI: Colorear consola de salida de Netbeans

Cuando realizamos proyectos java desde Netbeans, usamos System.out.println para imprimir datos en consola (para dep[...]

Cliente/Servidor en java y c#

Como habíamos mencionado en un anterior post Ejemplo socket java Cliente/Servidor , el lenguaje de programación entre el[...]

Como hacer una factura en Java (Proyecto)

Tiempo atras me pidieron un ejemplo de como realizar un reporte con iReport tipo factura, recibo o como le llamen, compl[...]

Introducción a Scene Builder y MVC (Parte II)

Segunda parte del tutorial [Introducción a Scene Builder y MVC (Parte I)]. En esta segunda parte, completaremos el diseñ[...]

Validar documentos XML con esquema XSD

Un esquema XSD se utiliza para describir y validar la estructura y contenido de los datos de un documento XML. Un esquem[...]

Puzzle en Visual Basic [Código Fuente]

Rompecabezas 3×3 realizado en Visual Basic .NET, lo que se hizo fue una migración de un proyecto hecho en java (pue[...]