JAVA – Conexao odbc direta para arquivos .dbf

4

Receba atualizações em tempo real grátis


Bom dia galera.

Bom, se você é programador Java, pode ter se deparado já com extensões de arquivos .dbf principalmente se teve que migrar alguma base de dados de uma tecnologia antiga, e não vou citar o Clipper que por incrível que pareça ainda tem aplicações rodando por aí.

Em um belo dia me vi tendo que resolver esse problema, usando o Windows tem essa questão do Odbc, adicionar uma fonte de dados do sistema, driver do acces, mas por algum motivo estranho o… Distinto driver não estava presente, particularidades lindas que só o Office e a Microsoft nos presenteiam no dia-a-dia.

Então encontrei essa maravilhosa biblioteca, a DBF_JDBC40, segue trecho de código exemplificando como ela simplifica as coisas:

 

public void Select(String caminho){
        try {
                 //Registrando o Driver JDBC do banco de dados...
                 String conexao = "com.hxtt.sql.dbf.DBFDriver";
                 //Carregando driver...
                 Class.forName(conexao).newInstance();
                 // String de conexao para o DBF
                 String arquivo = "nomeArquivo";
                 String url = "jdbc:DBF:/"+caminho;
                 //Faz um SELECT no arquivo
                 String sql = "SELECT * FROM "+arquivo;
                 //Não precisa colocar a extensão .dbf
                 //Abrindo uma conexão
                 Connection conn = DriverManager.getConnection(url);
                 // Statement...
                 Statement stmt = conn.createStatement();
                 //ResultSet
                 ResultSet rs = stmt.executeQuery(sql);
                 //Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...
                 while(rs.next()) {
                     model.setAtributo1(rs.getString("nomeColuna1"));
                     model.setAtributo2(rs.getInt("nomeColuna2"));
                     model.setAtributo3(rs.getDate("nomeColuna3"));
                     model.setNasc(data);
                 }
                 rs.close();
                 stmt.close();
                 conn.close();

        } catch (InstantiationException ex) {
            System.out.println(">>>"+ex.getMessage());
        } catch (IllegalAccessException ex) {
            System.out.println(">>>"+ex.getMessage());
        } catch (SQLException ex) {
            System.out.println(">>>"+ex.getMessage());
        } catch (ClassNotFoundException ex) {
            System.out.println(">>>"+ex.getMessage());
        }
   }

Segue a biblioteca, que não é a mais fácil de achar >>> DBF_JDBC40

O objetivo desta postagem foi fornecer uma ajuda para quem já sabe usar JDBC e se depara com as bases de dados .dbf,  lindas que não permitem qualquer coisa e que estão por aí ainda hoje, para nossa total satisfação e alegria.

 

Espero que isso ajude alguém como também me ajudou.
Até a próxima, pessoal
.

Receba atualizações em tempo real grátis

4 Comentários
  1. ANDERSON LIRA Diz

    Cara, parabéns! Ajudou muito!!!

  2. rafael moreira Diz

    Muito útil, porém quando realizei o select só retornou 1000 registros, sendo que na tabela tem muito mais. Alguma limitação da lib? ou alguma configuração adicional?

    1. Ismar Diz

      A biblioteca é trial

      http://www.hxtt.com/dbf/introduction.html

      Differences between the trial version and the licensed version:

      The trial version of the driver is available to use free for a 30-day trial period.
      The trial version of the driver allows executing not more than 50 queries once.
      SELECT queries return the first 1000 rows in the result set.

  3. Ismar Diz

    Aqui aconteceu o mesmo não leu toda a tabela.

Deixe um cometário :)

Seu endereço de email não será publicado.

This site uses Akismet to reduce spam. Learn how your comment data is processed.