Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Access / Base de Datos / Java / Consultas con parámetros en Access y Java

Consultas con parámetros en Access y Java

Autor 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 http://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

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Gestión de Stock – La Vista (Parte 3)

Gestión de Stock – La Vista (Parte 3)

En esta tercera parte del tutorial crearemos la interfaz de usuario GUI (VISTA) para el sistema de gestión de stock. Tom...

Hangman: El juego del ahorcado en java

Hangman: El juego del ahorcado en java

El Juego del ahorcado o Hangman, es un clásico juego de mesa que consiste en adivinar la palabra secreta, si no lo consi...

Envío de correo con JavaMail/Netbeans

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el...

Cliente/Servidor en java y c#

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...

Campo autoincrement en PostgreSQL con pgAdminIII

Campo autoincrement en PostgreSQL con pgAdminIII

En Postgres a diferencia de MySQL, colocar un campo con un valor autonumerico incrementable es un poco más complicado pe...

Descargar Doodle Google Pacman

Descargar Doodle Google Pacman

Hace un par de años atras google para el aniversario del juego de Pacman saco un doodle en su homenaje, ese doodle que s...

9 comentarios en “Consultas con parámetros en Access y Java”

  1. Enmanuel dice:

    Hola estimado muy buen aporte para los programadores en Java… A la vez quisiera hacer un pedido podrías hacer un tutorial que consista en hacer un actualizar de aplicaciones en java escritorio. Ya que a veces resulta muy engorroso ir a cada sitio del usuario e instalar un versión nueva. Saludos y Gracias antemano.

    1. Mouse dice:

      te refieres a actualizar versiones verdad, pues no veo el problema, solo es cuestión de reemplazar los archivos java por los nuevos, si lo que no quieres es borrar alguna configuración del cliente, eso se guarda en la base de datos o en un archivo aparte de la aplicación

  2. VIANEY VARGAS dice:

    AMIGO ESE CAMPO CI QUE ES??? CARNET IDENTIFICACION?? O CEDULA ??
    POR FAVOR MAS CONCRETO EN LOS CAMPOS AMIGO MOUSE

    1. Mouse dice:

      CI = Carnet de Identidad, el equivalente al DNI , ID o Cedula en otros paises 🙂

  3. VIANEY VARGAS dice:

    AMIGO MOUSE ME PUEDES AYUDAR????? porfavor no tienes un proyecto donde llenes un JCombobox con los nombres del campo1 de la tablaA y q al momento de seleccionar un item se actualize reistro especifico de la tablaB ???? porfavor llevo muchos diz averiguando en internet y no consigo como
    recurro

  4. VIANEY VARGAS dice:

    amigo mouse estas ahi???? podrias ayudarme porfavor de como hacer la conexion para 3 bases de datos distintas en una clase JAVA ???

  5. VIANEY VARGAS dice:

    si lo tienes??

  6. Jesùs dice:

    Buenas , estoy intentando hacer un buscador de datos en Java con una tabla de Access tambien , la unica diferencia con tu codigo es que lo estoy realizando con recurso grafico ( un JtextField y un Buttom). Tengo un codigo muy muy similar , pero el programa no recorre la tabla y siento que es por el codigo de SQL que estoy usando. Me podrias decir ¿cual es la diferencia en el codigo (SELECT , FROM , ECT) de ACCESS con el de una tabla de SQL realizada?… estoy trabado alli y me falta solo resolver ese problema.

    1. Mouse dice:

      tal ves tu problema sea con la tabla gráfica, si tienes muchos registros devueltos se puede poner lento, intenta paginando los resultados

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

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...

El índice TIOBE (TIOBE, The Importance of Being Earnest – “La importancia de ser honesto” – refe...

SDKMAN! es una herramienta para la administración de versiones paralelas de varios programas de desarrollo de software c...

Continuando con el estudio del meta lenguaje XML (Lenguaje de Marcado Extensible) bastante utilizado en el intercambio d...

Android Bolivia

MAUS