Conexão Banco Firebird (Jaybird)

1 resposta
R

Amigos,
Acabo de instalar o J2SE 5.0 - e o Jaybird (Con o classPath todo configurado)

Mas não estou conseguindo conectar com o banco de dados, ao compilar o cógido esta aparecendo a seguinte mensagem:

--------------------Configuration: <Default>-------------------- Note: C:\Java\ApJava.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: C:\Java\ApJava.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.

Process completed.

E não conecta no banco de daddos, segue o código:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.sql.*; 
import java.util.*; 

public class ApJava extends JFrame &#123; 
 private Connection conApJava;  // Conexão que será criada com o banco 
 private JTable vTabela;      // Tabela onde os registros serão inseridos 
 private JMenuBar barPrincipal; // Menu da aplicação 
 private JMenu mnuOpcoes; 
 private JMenuItem itens; 

 public ApJava&#40;&#41; 
 &#123; 
   componentes&#40;&#41;; 
  // sUrl especifica o banco de dados ao qual o programa se conecta, usando JDBC 
  // para conectar um banco de dados Interbase 
  String sUrl = &quot;jdbc&#58;firebirdsql&#58;localhost/3050&#58;c&#58;/Java/ApJava.gdb&quot;; 
  String vUsuario = &quot;SYSDBA&quot;; 
  String vSenha = &quot;masterkey&quot;; 

  // Carrega o Driver JDBC e abre a conexão com o banco 
  try&#123; 
   Class.forName&#40;&quot;org.firebirdsql.jdbc.FBDriver&quot;&#41;; 
   conApJava = DriverManager.getConnection&#40;sUrl, vUsuario, vSenha&#41;; 
  &#125; 
   catch&#40;ClassNotFoundException cnfex&#41;&#123; // Excessões geradas 
   String Msg = &quot;Impossível carregar o seguinte driver JDBC&#58; &quot; + cnfex.getMessage&#40;&#41; + &quot;\nSe o mesmo estiver instalado favor verificar a variável de ambiente CLASSPATH\n\n&quot;; 
      String Titulo = &quot; Erro ao carregar Driver JDBC&quot;; 

   // cnfex.getMessage&#40;&#41; =&gt; retorna interbase.interclient.Driver 
   JOptionPane.showMessageDialog&#40;null, Msg , Titulo, JOptionPane.WARNING_MESSAGE&#41;; 
      System.exit&#40;1&#41;; // termina o programa 
  &#125; 
  catch&#40;SQLException sqlex&#41;&#123; 
   String Msg = &quot;Não foi possível conectar o banco de dados ...&quot;; 
      String Titulo = &quot; Erro ao tentar conectar base de dados !&quot;; 

   JOptionPane.showMessageDialog&#40;null, Msg , Titulo, JOptionPane.WARNING_MESSAGE&#41;; 
      sqlex.printStackTrace&#40;&#41;; 
  &#125; 
   getTable&#40;&#41;; 
   resize&#40;500, 300&#41;; 
   setLocation&#40;50, 50&#41;; 
   show&#40;&#41;; 

 &#125; 

 public void componentes&#40;&#41;&#123; // Contrói a interface da aplicação&#123; Menu &#125; 

    JMenuBar mnubarJavaxe; 
    JMenu mnuArquivo, mnuAjuda, AjuJavaxe; 
    JMenuItem ArqFechar; 
    JMenuItem  AjuSobre; 

    mnubarJavaxe = new JMenuBar&#40;&#41;; // Adcionando a barra de menus 
    setJMenuBar&#40;mnubarJavaxe&#41;; 

   // Menu Arquivo 
    mnuArquivo = new JMenu&#40;&quot;Arquivo&quot;, true&#41;; // Criando o menu 
    mnuArquivo.setMnemonic&#40;'v'&#41;; 
    mnubarJavaxe.add&#40;mnuArquivo&#41;; 

    ArqFechar = new JMenuItem&#40;&quot;Fechar&quot;&#41;; 
    ArqFechar.setMnemonic&#40;'F'&#41;; 
    ArqFechar.addActionListener&#40; 
     new ActionListener&#40;&#41;&#123; 
       public void actionPerformed&#40; ActionEvent e&#41;&#123; 
     System.exit&#40;0&#41;; 
       &#125; 
     &#125; 
    &#41;; 
    mnuArquivo.add&#40;ArqFechar&#41;; 

   // Menu Ajuda 
    mnuAjuda = new JMenu&#40;&quot;Ajuda&quot;&#41;; 
    mnuAjuda.setMnemonic&#40;'d'&#41;; 
    mnubarJavaxe.add&#40;mnuAjuda&#41;; 

    AjuSobre = new JMenuItem&#40;&quot;Sobre Javaxe InterBase Access&quot;&#41;; 
    AjuSobre.setMnemonic&#40;'S'&#41;; 
    AjuSobre.addActionListener&#40; 
     new ActionListener&#40;&#41;&#123; 
       public void actionPerformed&#40; ActionEvent e&#41;&#123; 
       
       &#125; 
     &#125; 
    &#41;; 
    mnuAjuda.add&#40;AjuSobre&#41;; 
  &#125; 

  private void getTable&#40;&#41;&#123; 
    Statement smtp; 
    ResultSet consApJava; 

    try&#123; // Gera a Query para o banco 
      String consulta = &quot;SELECT * FROM TBLDADOS&quot;; 

      smtp = conApJava.createStatement&#40;&#41;; 
      consApJava = smtp.executeQuery&#40;consulta&#41;; 
      PrintQuery&#40;consApJava&#41;; 
      smtp.close&#40;&#41;; 
    &#125; 
    catch &#40;SQLException sqlex&#41;&#123; // Erro ao executar a Query no banco 
      sqlex.printStackTrace&#40;&#41;; 
    &#125; 
  &#125; 

  private void PrintQuery&#40;ResultSet rs&#41; throws SQLException&#123; 
    // posiciona-se no primeiro registro 
    boolean registro = rs.next&#40;&#41;; 

    // Se não houver registros exibe mensagem 
    if &#40;!registro&#41;&#123; 
      JOptionPane.showMessageDialog&#40;null, &quot;Consulta não retornou nenhum valor&quot; , &quot; Registro vazio&quot;, JOptionPane.WARNING_MESSAGE&#41;; 
      return; 
    &#125; 

    setTitle&#40;&quot;Javaxe Interbase Access 1.08, Copyright Javaxe ®&quot;&#41;; 
    Vector colunas = new Vector&#40;&#41;; 
    Vector linhas = new Vector&#40;&#41;; 

    try&#123; 
      // Obtém a estrutura da tabela do banco, que será adcionado a tabela 
      ResultSetMetaData rsmd = rs.getMetaData&#40;&#41;; 

      for &#40; int i = 1; i &lt;= rsmd.getColumnCount&#40;&#41;; ++i &#41; 
        colunas.addElement&#40; rsmd.getColumnName&#40;i&#41; &#41;; 

      // Obtém dados da linha 
      do&#123; 
        linhas.addElement&#40;getNextRow&#40;rs,rsmd&#41;&#41;; 
      &#125; while &#40;rs.next&#40;&#41;&#41;; 

      // Cria tabela e exibe o conteúdo do ResultSet 
      vTabela = new JTable&#40;linhas, colunas&#41;; 
      JScrollPane scroller = new JScrollPane&#40;vTabela&#41;; 
      getContentPane&#40;&#41;.add&#40; 
        scroller, BorderLayout.CENTER 
      &#41;; 
      validate&#40;&#41;; 
    &#125; 
    catch&#40;SQLException sqlex&#41;&#123; 
      sqlex.printStackTrace&#40;&#41;; 
    &#125; 
  &#125; 

  private Vector getNextRow&#40;ResultSet rs, ResultSetMetaData rsmd&#41; throws SQLException&#123; 
    Vector curLinha = new Vector&#40;&#41;; 

    for &#40; int i = 1; i &lt;= rsmd.getColumnCount&#40;&#41;; ++i&#41; 
      switch &#40;rsmd.getColumnType&#40;i&#41;&#41;&#123; 
        case Types.VARCHAR&#58; 
          curLinha.addElement&#40;rs.getString&#40;i&#41;&#41;; 
          break; 
        case Types.INTEGER&#58; 
          curLinha.addElement&#40;new Long&#40;rs.getLong&#40;i&#41;&#41;&#41;; 
          break; 
        default&#58; 
          System.out.println&#40;&quot;Tipo era&#58; &quot; + rsmd.getColumnTypeName&#40;i&#41;&#41;; 
      &#125; 
     return curLinha; 
  &#125; 

  public void shutDown&#40;&#41;&#123; 
    try&#123; // Fecha a conexão co o banco de dados 
      conApJava.close&#40;&#41;; 
    &#125; 
    catch&#40;SQLException sqlex&#41;&#123; // Não foi possível fechar a conexão 
      System.err.println&#40;&quot;Erro ao fechar conexão com o banco...&quot;&#41;; 
      sqlex.printStackTrace&#40;&#41;; 
    &#125; 
  &#125; 

  public static void main&#40; String args&#91;&#93; &#41; 
  &#123; 
     final ApJava app = new ApJava&#40;&#41;; 

     app.addWindowListener&#40; 
        new WindowAdapter&#40;&#41; &#123; 
           public void windowClosing&#40; WindowEvent e &#41; 
           &#123; 
             app.shutDown&#40;&#41;; 
              System.exit&#40; 0 &#41;; 
           &#125; 
        &#125; 
     &#41;; 
  &#125; 
&#125;

Quando postar códigos, utilize as tags BBCode - JavaPlayer

1 Resposta

E

A mensagem que você está vendo está dizendo que o método:resize&#40;500, 300&#41;;É desaconselhado. Utilize no seu lugar

Quanto a conectar ou não ao banco de dados (que não tem nada a ver com a mensagem). Verifique se a url está correta. Ou melhor, imprima na tela no método getTabela();

Criado 15 de agosto de 2006
Ultima resposta 18 de ago. de 2006
Respostas 1
Participantes 2