GARANTIR DESCONTO

Fórum Conexão Firebird e Java (Via JDBC) #566981

09/04/2009

0

Já baixei vários drives JDBC (uns 5) baixei NetBeans 4.0 e 3.6 e dois BDs (MySQL e Firebird). Estou no momento com o Firebird, configurado e funcionando, inclusive na minha aplicação em JAVA, via ODBC, mas nos exemplos que vi aq em alguns tuto, a classe era definida pelo IP do servidor, mas desta forma eu nao consigo. Jeito que eu fiz.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url = "jdbc:odbc:SPZSYS";
Connection con = DriverManager.getConnection(url,"SYSDBA","123242");
Jeito que eu nao consigo fazer.
url = "jdbc:firebirdsql:127.0.0.1/3050:/java/projauto/bd/ProjAuto.fdb";
drive = "org.firebirdsql.jdbc.FBDriver";
Preciso muito da ajuda de vcs, pois não vejo mais soluções pra esse problema. :arrow: Alguém que tenha conseguido configurar e possa me ajudar, ou dar um dica que me ajude. Abraços pessoal, até mas... Rafael.
Rpizao

Rpizao

Responder

Posts

09/04/2009

Rpizao

Po cara, eu vi...tu teve muita força de vontade...espero tb ter sucesso no fim... Cara, eu executei o .bat....isso só nao adiantaria não?! Mas, enfim, como vc indicou reiniciei e nada... No comando SET, aparece todo classpath que eu defini e algumas outras coisas... Será algum erro no meu código mano?! Olha ele ai...
import java.sql.*;
import javax.swing.*;


public class conectBD
{
public conectBD()
{
try
{  
Class.forName("org.firebirdsql.jdbc.FBDriver");
String url = "jdbc:firebirdsql:127.0.0.1/3050:database/Spz_bd.gdb";
Connection con = DriverManager.getConnection(url,"SYSDBA","123242");
Statement st = con.createStatement(); 
String s = "SELECT * FROM testeBD";
ResultSet rs = st.executeQuery(s);
while (rs.next())
{
JOptionPane.showMessageDialog(null, rs.getString(1) + "-" + rs.getString(2));
}
 con.close();
}
catch(Exception e)
{
System.out.println(e);
System.exit(0);
}
}
	
	public static void main(String args[])
	{
	conectBD obj = new conectBD();
	}
}
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

O código está correto. Se o erro ainda é o mesmo, ou seja, java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver significa que o driver não foi encontrado. Como está sua classpath agora ? Eu acesso ao banco da seguinte forma: criei uma classe de conexão chamada connection factory, que acessa um properties para pegar os dados referentes ao banco e ao driver. Aqui está o código da minha classe de conexão:
import java.util.*;
import java.io.*;
import java.sql.*;
public class ConnectionFactory
{
	protected Properties conProp;
	public ConnectionFactory(File config) throws IOException
	{
	     FileInputStream input = new FileInputStream(config);
	     conProp = new Properties();
	     conProp.load(input);
	     input.close();
	}
	public Connection getConnection() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException
	{
	     String dri = conProp.getProperty("driver");
	     Class.forName(dri).newInstance();
	     String ur = conProp.getProperty("url");
	     String us = conProp.getProperty("user");
	     String pa = conProp.getProperty("password");
	     Connection c = DriverManager.getConnection(ur,us,pa);
	     return c;
	}
}
O meu properties está assim:
driver   = org.firebirdsql.jdbc.FBDriver
url      = jdbc:firebirdsql:192.168.2.33/3050:d:Mid/Db/Mid.fdb
user     = SYSDBA
password = masterkey
A minha classpath está assim:
set classpath=.;c:/j2sdk1.4.2_05/lib/tools.jar;
c:/j2sdk1.4.2_05/jre/lib/ext/pgjdbc2.jar;c:\j2sdk1.4.2_05\lib\firebirdsql.jar;c:\j2sdk1.4.2_05\lib\jaas.jar;
c:\j2sdk1.4.2_05\lib\log4j-core.jar;
c:\j2sdk1.4.2_05\lib\mini-concurrent.jar;
c:\j2sdk1.4.2_05\lib\mini-j2ee.jar;c:\j2sdk1.4.2_05\lib\jdbc2_0-stdext;
E os meus drivers (jdbc para o fire), como vc pode ver na classpath, estão na seguinte pasta:
C:\j2sdk1.4.2_05\lib
Dê uma olhada e verifique se não tem nada de diferente. :!:
Responder

Gostei + 0

09/04/2009

Rpizao

Cara, desculpai não ter respondido antes, to enrolado aq no trabalho...valeu mesmo pela sua ajuda, pela paciência. No .bat tirando o tools.jar, pgjdbc2.jar e jdbc2_0-stdext o resto está igual. Mudei todo meu fonte, adaptando igual ao seu e o erro agora é:
java.lang.NullPointerException
Valeu cara....tomara q apartir dai de td certo.... Abraços. Rafael. :!:
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

Posta o código aqui
Responder

Gostei + 0

09/04/2009

Rpizao

Desculpai o plágio velho......conseguindo fazer funcionar vou dar uma modificada. Tai ele.
import java.util.*; 
import java.io.*; 
import java.sql.*;
import javax.swing.*;

public class ConnectionFactory 
{ 
   protected Properties conProp;
   public ConnectionFactory()
   {
   		
   }
   public ConnectionFactory(File config) throws IOException 
   { 
        FileInputStream input = new FileInputStream(config); 
        conProp = new Properties(); 
        conProp.load(input); 
        input.close(); 
   } 
   public Connection getConnection() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException 
   { 
        String dri = conProp.getProperty("org.firebirdsql.jdbc.FBDriver"); 
        Class.forName(dri).newInstance(); 
        String ur = conProp.getProperty("jdbc:firebirdsql:127.0.0.1/3050:c:database/Spz_bd.gdb"); 
        String us = conProp.getProperty("SYSDBA"); 
        String pa = conProp.getProperty("123242"); 
        Connection c = DriverManager.getConnection(ur,us,pa); 
        return c; 
   }
   
   public static void main(String args[])
   {
   		ConnectionFactory obj = new ConnectionFactory();
   		try
   		{
   			Connection conn = obj.getConnection();
   			Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery("SELECT * FROM testeBD");
            while (rs.next())
           	{
            	JOptionPane.showMessageDialog(null, rs.getString(1) + "-" + rs.getString(2)); 
           	}
            //Fechando a conexão: 
            conn.close();
   		}
   		catch(Exception exc)
   		{
   			JOptionPane.showMessageDialog(null,"Exceção gerada: "+exc);
   		}
   }
} 
Valeu parcero...
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

Cara, primeiro tente entender o que a minha classe está fazendo. :oops: vc sobreescreveu o construtor ConnectionFactory(), desta forma:
 public ConnectionFactory()
repare que na assinatura do método original, ele está recebendo um arquivo:
 public ConnectionFactory(File config) throws IOException
E como vc não passa nenhum parametro ele executa o seu método construtor, que por sinal não está implementado, então vc não obtem a conexão. :?: Caso vc queira usar a ConnectionFactory que eu te passei, vc terá que editar um properties e lá definir o driver, url, usuário e senha e quando chamar a classe vc terá que passar como parâmetro o arquivo properties editado(inclusive o caminho) e depois pegar a conexão através do método getConnection(). Veja como eu instancio a classe:
ConnectionFactory factory = new ConnectionFactory(new File("../DB/Mid.properties"));
Connection c = factory.getConnection();
Responder

Gostei + 0

09/04/2009

Rpizao

Cara, o que eu tentei era exatamente isso, sobrescrever o método construtor, quando na verdade poderia somente comentar seu construtor...isso pq nao tinha percebido a importância dele, aliás cara, ainda não percebi.... Que arquivo é esse? Vc gera ele direto do banco? Qual conteúdo vc quarda nesse arquivo cara? Valeu parcero... :!:
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

É um arquivo de propriedades. vc pode edita-lo até com o bloco de notas. exemplo: driver = org.firebirdsql.jdbc.FBDriver user = SYSDBA salve o arquivo como <nomedoarquivo.properties>. Como funciona ? vc vai utilizar a classe properties() para manipular o arquivo e pegar os parametros setados no mesmo. Estude esta classe, para maiores detalhes. [url]http://java.sun.com/j2se/1.4.2/docs/api/[/url]
Responder

Gostei + 0

09/04/2009

Rpizao

Tentei usar uma conexão direto do NetBeans e o erro foi esse ai, parece ser o mesmo. Quando peço, lá para localizar o driver jdbc ele encontra sem problema puxando do arquivo firebirdsql.jar e mostra até como configurar, mas erro persiste. Tai ele
Annotation: Exception occurred in Request Processor
java.lang.NoClassDefFoundError: javax/resource/ResourceException
	at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:147)
	at org.netbeans.modules.db.explorer.DatabaseConnection$1.run(DatabaseConnection.java:340)
	at org.openide.util.Task.run(Task.java:136)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:330)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:686)
Valeu cara, até... Rafael.
Responder

Gostei + 0

09/04/2009

Claudio Paranhos

voce já registrou os 5 drivers do firebird no Netbeans ?
Responder

Gostei + 0

09/04/2009

Rpizao

Retorno esse erro ai, eu já tinha colocado todos os .jars q veio no driver agora coloquei só os 5 que vc me falou.
Unable to add conection, cannot establish a connection to jdbc:firebirdsql:127.0.0.1/3050:c:database/Spz_bd.gdb using org.firebirdsql.jdbc.FBDriver(Resource Exception. Unable to complete network request to host "127.0.0.1".
Reason: Unable to complete network request to host "127.0.0.1".)
PS: Tem um botão que testa o driver pra ve se está ok, e deu td certo nesse teste. Valeu... :!: Rafael.
Responder

Gostei + 0

09/04/2009

Rpizao

Cara......nem sei como te agradecer velho..... Maldito editor manual que nao me deixa-va conectar, usando o NetBeans consegui na boa... Cara, valeu muito ai pela idéias, pelos toques e pela paciência velho. Precisando cupadi, estamosai. Abração meu mano. Até mas. :!: :!: :!: :!: Rafael.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar