Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Java ::: Java + Firebird/Interbase ::: Metadados da Base de Dados (Database Metadata)

Como retornar os tipos de dados suportados pelo Firebird e seus correspondentes JDBC

Quantidade de visualizações: 7522 vezes
Em algumas situações precisamos obter os tipos de dados suportados pelo Firebird e mapeá-los para seus correspondentes JDBC. Esta não é uma tarefa fácil, mas que, com uma pequena ajuda dos recursos de reflexão do Java, pode ser realizada depois de algumas xícaras de café.

O primeiro passo é obter os tipos de dados suportados pelo Firebird com uma chamada ao método getTypeInfo() da interface DatabaseMetaData. Os campos do ResultSet que nos interessam são TYPE_NAME e DATA_TYPE. TYPE_NAME traz o nome do tipo de dados no Firebird enquanto DATA_TYPE traz o tipo JDBC correspondente como um inteiro. Assim, o que temos que fazer é usar reflexão para obter todos os campos da classe java.sql.Types e efetuar um mapeamento entre os tipos.

Veja o código completo para o exemplo:

package estudos_jdbc;

import java.lang.reflect.Field;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;

public class Main{
  static Map mapa; // usado para mapear os tipos JDBC
  
  public static void main(String[] args) {
    // string de conexão
    String databaseURL =
      "jdbc:firebirdsql:localhost/3050:C:\\Firebird_2_5\\dados\\estudos.fdb";
    String user = "sysdba";
    String password = "masterkey";
    String driverName = "org.firebirdsql.jdbc.FBDriver";

    try {
      Class.forName(driverName).newInstance();
      Connection conn = DriverManager.getConnection(databaseURL, user, password);

      // vamos obter um objeto da classe org.firebirdsql.jdbc.FBDatabaseMetaData
      DatabaseMetaData dbmd = conn.getMetaData();

      // vamos obter os tipos de dados suportados por esta versão do Firebird
      // e seus correspondentes JDBC
      ResultSet tiposDados = dbmd.getTypeInfo();
      while(tiposDados.next()){
        System.out.println("Firebird: " + tiposDados.getString("TYPE_NAME") +
          " - JDBC: " + getJdbcTypeName(Integer.parseInt(tiposDados.getString("DATA_TYPE"))));
      }
      
      // vamos fechar o ResultSet
      tiposDados.close();
    }
    catch (SQLException ex) {
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }
    catch (Exception e) {
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);


O resultado da execução deste código foi:

Firebird: BIGINT - JDBC: BIGINT
Firebird: BLOB SUB_TYPE 0 - JDBC: LONGVARBINARY
Firebird: BLOB SUB_TYPE 1 - JDBC: LONGVARCHAR
Firebird: CHAR - JDBC: CHAR
Firebird: NUMERIC - JDBC: NUMERIC
Firebird: DECIMAL - JDBC: DECIMAL
Firebird: INTEGER - JDBC: INTEGER
Firebird: SMALLINT - JDBC: SMALLINT
Firebird: FLOAT - JDBC: FLOAT
Firebird: DOUBLE PRECISION - JDBC: DOUBLE
Firebird: VARCHAR - JDBC: VARCHAR
Firebird: DATE - JDBC: DATE
Firebird: TIME - JDBC: TIME
Firebird: TIMESTAMP - JDBC: TIMESTAMP
Firebird: ARRAY - JDBC: OTHER
Firebird: BLOB SUB_TYPE <0 - JDBC: BLOB

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 23 usuários muito felizes estudando em nosso site.