Está en la página 1de 3

Soluciones JDBC

1. Para configurar el ODBC debemos realizar lo siguiente: a) Seleccionar el controlador para establecer el origen de datos. En nuestro caso Microsoft Access Driver.

b) Ponerle nombre al origen de datos y seleccionar la base de datos que vamos a utilizar.

c) Seleccionar la base de datos que vamos a utilizar.

2. Esta es una posible solucin al ejercicio propuesto:


//ConsultaBD.java import java.net.*; import java.sql.*; import java.io.*; public class ConsultaBD { static Connection conexion; //conexin con la base de datos static Statement sentencia; //sentencia de consulta static ResultSet resultado; //resultados de la consulta static ResultSetMetaData tabla; //formato de la tabla String controlador="sun.jdbc.odbc.JdbcOdbcDriver"; String origenDatos="AccessODBC"; //origen de Datos de ODBC String url="jdbc:odbc:" + origenDatos; String login=""; //login de BD String passwd=""; //password de BD static BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in)); static String sqlQuery; public ConsultaBD() { try { Class.forName(controlador); System.out.println("Controlador registrado: " + controlador); conexion=DriverManager.getConnection(url,login,passwd); System.out.println("Conectado a: "+ url); } catch(ClassNotFoundException e1) { System.out.println("Error1 - Controlador no encontrado."); System.out.println(e1.getMessage()); System.exit(0); } catch(SQLException e2) { System.out.println("Error2 - SQLException."); System.out.println(e2.getMessage()); System.exit(0); } } public static void main(String[] args) { ConsultaBD consultaBD = new ConsultaBD(); int cols=0; boolean hayResultados; try { do{ System.out.println("\nIntroduzca una consulta SQL (o salir):\n"); sqlQuery=entrada.readLine(); if (sqlQuery.toLowerCase().equals("salir")) { //sentencia.close(); conexion.close(); System.out.println("\nConexin cerrada."); System.exit(0); } //creamos la sentencia sentencia=conexion.createStatement(); //ejecutamos la consulta y obtenemos los datos System.out.println("\nSentencia a ejecutar: sqlQuery);

"

hayResultados = sentencia.execute(sqlQuery); if(hayResultados) { resultado = sentencia.getResultSet(); tabla=resultado.getMetaData(); //mostramos los datos por pantalla if(resultado != null) imprimirResultados(); } else System.out.println("\nSentencia ejecutada."); }while(true);//fin del do-while }catch(IOException e3) { System.out.println("Error3 - IOException."); System.out.println(e3.getMessage()); }catch(SQLException e4) { System.out.println("Error4 - SQLException."); System.out.println(e4.getMessage()); }//fin del try-catch }//fin de la funcin static public void imprimirResultados() throws SQLException { int numeroColumnas,i; numeroColumnas=tabla.getColumnCount(); //System.out.println("Nmero de columnas: " + numeroColumnas); for (i=1;i<=numeroColumnas;i++) { System.out.print(tabla.getColumnLabel(i) + "\t"); }//fin del for System.out.println("\n\n"); while (resultado.next()) { for(i=1;i<=numeroColumnas;i++) { System.out.print(resultado.getString(i)+"\t"); }//fin del for System.out.println(""); }//fin del while }//fin de la funcin }

3. La solucin a este ejercicio se encuentra en un archivo zip denominado CensoJDBC.