Estou tentando conectar um banco firebird no java e estou tomando um surra feia.
Qualquer ajuda será bem vinda. Vlw
Sistema
Netbeans ide 6.0.1
Java 1.6.0_01
winxp
Classpath= .;C:\firebird\jdbc2_0-stdext.jar;C:\firebird\lib\jaas.jar;C:\firebird\lib\log4j-core.jar;C:\firebird\lib\mini-concurrent.jar;C:\firebird\lib\mini-j2ee.jar
fonte:
import java.sql.*;
public class Conexao {
publicstaticvoidmain(Stringargs[]){System.out.println("#testando acesso a banco de dado Interbase\n\n");Connectionconn=null;Stringteste="SELECT NOME FROM DBCADCLI;";try{Class.forName("org.firebirdsql.jdbc.FBDriver");conn=DriverManager.getConnection("jdbc:firebirdsql:192.168.96.3/3050:/home/bancos/lascasas/menfis.fdb","SYSDBA","masterkey");System.out.println("Sucesso na conexão! Massacre!\n");Statementstm=conn.createStatement();ResultSetrs=stm.executeQuery(teste);while(rs.next()){Stringlinha=rs.getString("NOME");System.out.println("Cliente:"+linha);}System.out.println("select realizado\n");}catch(ClassNotFoundExceptione){System.out.println("excessao ClassNotFound...");e.printStackTrace();}catch(SQLExceptione){System.out.println("SQL Exception... Erro dos Bravos");e.printStackTrace();}finally{try{conn.close();}catch(SQLExceptiononConClose){System.out.println("error on closing");onConClose.printStackTrace();}}}
// Cria e retorna uma nova conexão com o BDprivateConnectiongetConnection(){Connectionconn=null;try{Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();Stringurl="jdbc:firebirdsql:localhost/3050:C:/FIREBIRD/SEUBANCO.gdb";Stringuser="sysdba";Stringpass="masterkey";conn=DriverManager.getConnection(url,user,pass);}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}
[]'s
aguiarle
deu o mesmo erro. mesmo assim obrigado.
crpablo
Cara,
Quais JARs vc add a lib?
Onde vc adicionou?
Não tinha testado minha connect no NB, aliás nem uso ele… mas fiz o teste aki e deu tudo certo…
aguiarle
As mesmas que estao no meu classpath. ja tentei colocar tbm a firebirdsql-full.jar, q pelo o q li, me parece q ela engloba uns 4 jars daquela lista, podendo retira-las.
crpablo
Você add o jar do firebird na lib do projeto ou do NB?
Pega essa class e faz o teste... mais abaixo tem outra com o main pra testar...
importjava.sql.Connection;importjava.sql.DatabaseMetaData;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;/** * Classe que manipula as propriedades do BD bem como seus dados com os * seguintes métodos: getNomeTabelas() retorna os nomes das tabelas em um schema * específico no BD ou mesmo todas tabelas de todos schemas; getDadosTabelas() * retorna os dados das tabelas do BD; getNomeColunas() retorna os nomes das * colunas de uma tabela; getQuantidadeColunas() retorna quantas colunas uma * tabela possuí; getDatabaseMetaData() retorna um objeto DatabaseMetaData que * consulta propriedades da tabelaS */publicclassTabelasBD_firebird{publicDatabaseMetaDatagetDatabaseMetaData(){DatabaseMetaDatadbmd=null;try{dbmd=getConnection().getMetaData();}catch(SQLExceptione){e.printStackTrace();}returndbmd;}// Retorna uma lista com todas as tabelas do schema CIANET@SuppressWarnings("unchecked")publicListgetNomeTabelas(){ResultSetrsPegaTabelas=null;ListlistaTabelas=newArrayList();try{rsPegaTabelas=getDatabaseMetaData().getTables(null,"CIANET","%",null);while(rsPegaTabelas.next()){listaTabelas.add(rsPegaTabelas.getObject(3));}}catch(SQLExceptione){e.printStackTrace();}returnlistaTabelas;}// Retorna uma lista com os dados das tabelas@SuppressWarnings("unchecked")publicListgetDadosTabelas(StringnomeTabela){PreparedStatementps=null;ResultSetrsPegaDados=null;ListlistaDados=newArrayList();try{ps=getConnection().prepareStatement("SELECT * FROM "+nomeTabela);rsPegaDados=ps.executeQuery();intqntColunas=getQuantidadeColunas(nomeTabela);System.out.println("Nº Colunas atual: "+qntColunas);while(rsPegaDados.next()){for(intj=0;j<qntColunas;j++){listaDados.add(rsPegaDados.getString(j+1));System.out.println("Coluna "+(j+1)+" "+rsPegaDados.getString(j+1)+" Tipo "+rsPegaDados.getMetaData().getColumnLabel(j+1));}}ps.close();getConnection().close();}catch(SQLExceptione){e.printStackTrace();}// }returnlistaDados;}// Retorna uma lista com o nome de todas as colunas da tabela@SuppressWarnings("unchecked")publicListgetNomeColunas(StringnomeTabela){ListnomeColunas=newArrayList();Statementstmt;ResultSetrsNomeColunas=null;ResultSetMetaDatarsmd=null;intqtdColunas;try{stmt=getConnection().createStatement();rsNomeColunas=stmt.executeQuery("SELECT * FROM "+nomeTabela);rsmd=rsNomeColunas.getMetaData();qtdColunas=rsmd.getColumnCount();for(inti=0;i<qtdColunas;i++){nomeColunas.add(rsmd.getColumnName(i+1));}}catch(SQLExceptione){e.printStackTrace();}System.out.print("\n");returnnomeColunas;}// Retorna a quantidade de colunas na tabelapublicintgetQuantidadeColunas(StringnomeTabela){intquantidadeColunas=0;try{quantidadeColunas=getResultSetMetaData(nomeTabela).getColumnCount();}catch(SQLExceptione){e.printStackTrace();}System.out.print("\n");returnquantidadeColunas;}// Retorna o ResultSetMetaData da tabela em questão, com ele é possível// obter propriedades da tabelapublicResultSetMetaDatagetResultSetMetaData(StringnomeTabela){Statementstmt=null;ResultSetrsQtdColunas=null;ResultSetMetaDatarsmd=null;try{stmt=getConnection().createStatement();rsQtdColunas=stmt.executeQuery("SELECT * FROM "+nomeTabela);rsmd=rsQtdColunas.getMetaData();}catch(SQLExceptione){e.printStackTrace();}returnrsmd;}// Cria e retorna uma nova conexão com o BDprivateConnectiongetConnection(){Connectionconn=null;try{Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();Stringurl="jdbc:firebirdsql:localhost/3050:C:/*****SEUBD******";Stringuser="sysdba";Stringpass="masterkey";conn=DriverManager.getConnection(url,user,pass);}catch(InstantiationExceptione){e.printStackTrace();}catch(IllegalAccessExceptione){e.printStackTrace();}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}}
No NB q eu tenho, tem uma parte no menu ferramentas onde tem biblioteca.
Eu estava adicionando o arquivo ali, mas nao estava adicionando ao projeto.
Por isso ele nao reconhecia.
tem q ir na propriedade do projeto e adicionar a biblioteca ao projeto.
vlw
t+
crpablo
AMÉM!!!..hahahaha
Bom que chegamos a algum lugar…
Aproveita e coloca um RESOLVIDO lá no título do tópico…