Problemas com conexao firebird (RESOLVIDO)

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 {

public static void main(String args[]) {
   
   
    System.out.println("#testando acesso a banco de dado Interbase\n\n");
    Connection conn = null;
    String teste = "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");
     Statement stm = conn.createStatement();
     ResultSet rs = stm.executeQuery(teste);
     while (rs.next())
     {
        String linha = rs.getString("NOME");
        System.out.println("Cliente:" +linha);
     }
   
     System.out.println("select realizado\n");
  }
  catch(ClassNotFoundException e)
  {
                    System.out.println("excessao ClassNotFound...");
                    e.printStackTrace();
  }
  catch(SQLException e)
  {
                    System.out.println("SQL Exception... Erro dos Bravos");
                    e.printStackTrace();
  }
  finally
  {
     try
     {
        conn.close();
     }
     catch(SQLException onConClose)
     {
        System.out.println("error on closing");
        onConClose.printStackTrace();
     }
  }
}

erro :

java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver

    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at testefirebird.Conexao.main(Conexao.java:23)

Vc colocou o driver no class do windows?

Pq não coloca no netbeans?

Ja esta Tbm no class do netbeans e nada.

Cara… dá uma olhada nessa minha connect…

Ela tá funcionando tranquilo…

[code]// Cria e retorna uma nova conexão com o BD
private Connection getConnection() {

	Connection conn = null;

	try {
		Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
		String url = "jdbc:firebirdsql:localhost/3050:C:/FIREBIRD/SEUBANCO.gdb";
		String user = "sysdba";
		String pass = "masterkey";
		conn = DriverManager
				.getConnection(url, user, pass);
	} catch (InstantiationException e) {
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}

	return conn;
}[/code]

[]'s

deu o mesmo erro. mesmo assim obrigado.

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…

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.

Você add o jar do firebird na lib do projeto ou do NB?

Nos 2

Certo…

Deixa eu dar uma descrição do meu aqui…

Netbeans 5.5
JDK 1.6
Firebird 2.0
Driver Firebird: jaybird-full-2.1.1.jar

Configurado na lib do projeto somente…

Confere com os seus ae…

adicionei este driver q vc passou e ainda continua com o mesmo erro

vou t add no msn

Não uso msn no trampo cara… soh em casa…

Mas se vc está usando como falei… deveria funcionar… pelo menos o meu funciona tranquilo… nunca tive problemas…

Eu uso o eclipse e configurei no NB só pra testar hj… e foi di boa!!!

Vc tem o eclipse instalado ae?

Se tiver tenta configurar nele… vai q teu NB tá com algum pau!!!

Tentei no eclipse e deu a mesma msg.

tentei na linha de comando e deu este erro.

Exception in thread “main” java.lang.NoClassDefFoundError: Conexao
testefirebird/Conexao)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Sour
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Metho
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Sourc
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Cara… Testou com o meu cód.?

Pega essa class e faz o teste… mais abaixo tem outra com o main pra testar…

[code]import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.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
    */

public class TabelasBD_firebird {

public DatabaseMetaData getDatabaseMetaData() {

	DatabaseMetaData dbmd = null;

	try {
		dbmd = getConnection().getMetaData();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return dbmd;
}

// Retorna uma lista com todas as tabelas do schema CIANET
@SuppressWarnings("unchecked")
public List getNomeTabelas() {

	ResultSet rsPegaTabelas = null;
	List listaTabelas = new ArrayList();

	try {
		rsPegaTabelas = getDatabaseMetaData().getTables(null, "CIANET",
				"%", null);

		while (rsPegaTabelas.next()) {
			listaTabelas.add(rsPegaTabelas.getObject(3));

		}

	} catch (SQLException e) {
		e.printStackTrace();
	}
	return listaTabelas;
}

// Retorna uma lista com os dados das tabelas
@SuppressWarnings("unchecked")
public List getDadosTabelas(String nomeTabela) {

	PreparedStatement ps = null;
	ResultSet rsPegaDados = null;
	List listaDados = new ArrayList();
	
	
	try {
		ps = getConnection()
				.prepareStatement("SELECT * FROM " + nomeTabela);

		rsPegaDados = ps.executeQuery();

		int qntColunas = getQuantidadeColunas(nomeTabela);
		System.out.println("Nº Colunas atual: " + qntColunas);

		while (rsPegaDados.next()) {
			for (int j = 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 (SQLException e) {
		e.printStackTrace();
	}
	// }
	return listaDados;
}

// Retorna uma lista com o nome de todas as colunas da tabela
@SuppressWarnings("unchecked")
public List getNomeColunas(String nomeTabela) {

	List nomeColunas = new ArrayList();
	Statement stmt;
	ResultSet rsNomeColunas = null;
	ResultSetMetaData rsmd = null;
	int qtdColunas;

	try {
		stmt = getConnection().createStatement();
		rsNomeColunas = stmt.executeQuery("SELECT * FROM " + nomeTabela);
		rsmd = rsNomeColunas.getMetaData();

		qtdColunas = rsmd.getColumnCount();

		for (int i = 0; i < qtdColunas; i++) {
			nomeColunas.add(rsmd.getColumnName(i + 1));
		}

	} catch (SQLException e) {
		e.printStackTrace();
	}
	System.out.print("\n");
	return nomeColunas;
}

// Retorna a quantidade de colunas na tabela
public int getQuantidadeColunas(String nomeTabela) {

	int quantidadeColunas = 0;

	try {

		quantidadeColunas = getResultSetMetaData(nomeTabela)
				.getColumnCount();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	System.out.print("\n");
	return quantidadeColunas;
}

// Retorna o ResultSetMetaData da tabela em questão, com ele é possível
// obter propriedades da tabela
public ResultSetMetaData getResultSetMetaData(String nomeTabela) {

	Statement stmt = null;
	ResultSet rsQtdColunas = null;
	ResultSetMetaData rsmd = null;

	try {
		stmt = getConnection().createStatement();
		rsQtdColunas = stmt.executeQuery("SELECT * FROM " + nomeTabela);
		rsmd = rsQtdColunas.getMetaData();
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return rsmd;
}

// Cria e retorna uma nova conexão com o BD
private Connection getConnection() {

	Connection conn = null;

	try {
		Class.forName("org.firebirdsql.jdbc.FBDriver").newInstance();
		String url = "jdbc:firebirdsql:localhost/3050:C:/*****SEUBD******";
		String user = "sysdba";
		String pass = "masterkey";
		conn = DriverManager
				.getConnection(url, user, pass);
	} catch (InstantiationException e) {
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}

	return conn;
}

}[/code]

Para testar:

[code]public class TabelasBD_Main {

public static void main(String[] args) {

	String nomeTabela = "******SUATABELA******";

	TabelasBD_firebird tabelas = new TabelasBD_firebird();

	tabelas.getDadosTabelas(nomeTabela);
	System.out.println(tabelas.getNomeTabelas());
	System.out.println(tabelas.getNomeColunas(nomeTabela));
	System.out.println(tabelas.getQuantidadeColunas(nomeTabela));
	System.out.println(tabelas.getDadosTabelas(nomeTabela));

}

}[/code]

Vamu lah!!!

deu o mesmo erro…

acredito q o erro nao esta no codigo, mas sim nos drivers…

eu peguei eles na net, mas nao sei, pode esta dando conflito de versoes.

blz…

To enviando…

[]'s

nada mudou…
adicionei as sua libs e nada.
detonei os dois classpath para teste, o do windows e do nb e deu a mesma msg de erro

hahaha… cara, tem algum centro de macumba ae por perto?.. mãe de santo, essas coisas?

Tá conseguindo acessar o bd via console?

deixa sem o driver no path do xp e configura só o do NB e Eclipse…

Os meus estão configurados conforme as img em anexo…




Funcionou!!!

Muito Obrigado pela ajuda.

Agora deixa eu te passar o ocorrido.

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+