segunda-feira, 26 de dezembro de 2011

Conectar ao um banco de dados MS Access via JDBC

Vamos ver um exemplo simples para acessar um banco de dados em MS Access. Para isto temos que realizar 6 passos indicados na classe abaixo:

import java.awt.*;

import java.sql.*;
public class Connect {
    public static void main(String[] av) {
        // teste é o nome da fonte de dados no ODBC
        String dbURL = "jdbc:odbc:teste"; 
        try {
            // 1. carregar o driver de acesso ao banco de dados que desejamos
    //    neste caso é a bridge para ODBC: jdbc-odbc bridge driver
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


            System.out.println("Abrindo conexao com "+dbURL);


    // 2. abrir a conexão
    // os parâmetros são:
    //    URL, usuario, senha
            Connection conn = DriverManager.getConnection(dbURL, "admin", "");    


            // Se o objeto SQLWarning estiver disponivel,
            // apresentar na tela os avisos
            SQLWarning warn = conn.getWarnings( );
            while (warn != null) { // podem existir diversos avisos
                System.out.println("SQLState: " + warn.getSQLState( ));
                System.out.println("Messagem: " + warn.getMessage( ));
                System.out.println("Vendor:   " + warn.getErrorCode( ));
                System.out.println("");
                warn = warn.getNextWarning( );
            }


// 3. criar um objeto tipo Statement que será utilizado 
//para buscar os dados do banco de dados
Statement stmt = conn.createStatement( );


// 4. executar a query para buscar os dados
ResultSet rs = stmt.executeQuery("select * from Tabela1");


// 5. mostrar resultados
while (rs.next()) {
int id = rs.getInt("codigo");
String s = rs.getString("descricao");
Date dt = rs.getDate("data");

System.out.println("Codigo  = "+Integer.toString(id));
System.out.println("   Desc = "+s);
System.out.println("   Data = "+dt.toString());
}


// 6. fechar os objetos
rs.close();
stmt.close();
            conn.close(); 


        } catch (ClassNotFoundException e) {
            System.out.println("Nao foi possivel carregar o driver " + e);
        } catch (SQLException e) {
            System.out.println("Acesso ao banco de dados falhou " + e);
        }
    }
}

Vejamos como funciona a classe:

Para que a classe funcione é necessário criar uma entrada no gerenciador de fontes de dados do ODBC como indicado na figura abaixo:



Nenhum comentário:

Postar um comentário