Conexão Firebird e Java (Via JDBC)
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.
Jeito que eu nao consigo fazer.
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.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url = "jdbc:odbc:SPZSYS";
Connection con = DriverManager.getConnection(url,"SYSDBA","123242");
url = "jdbc:firebirdsql:127.0.0.1/3050:/java/projauto/bd/ProjAuto.fdb"; drive = "org.firebirdsql.jdbc.FBDriver";
Rpizao
Curtidas 0
Respostas
Claudio Paranhos
09/04/2009
[quote="rpizao"]
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.
Rafael.
Qual é o erro que está dando ?
Mas vamos lá, tente desta forma:
url = "jdbc:firebirdsql:127.0.0.1/3050:/java/projauto/bd/ProjAuto.fdb"; drive = "org.firebirdsql.jdbc.FBDriver";
url = "jdbc:firebirdsql:127.0.0.1/3050:java/projauto/bd/ProjAuto.fdb"; drive = "org.firebirdsql.jdbc.FBDriver";
GOSTEI 0
Rpizao
09/04/2009
Cara, continua......o erro ocorre na definição Class.forName(drive);
Da o seguinte erro:
Conto com a tua ajudai cara...
Abraços.
Rafael.
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
GOSTEI 0
Cybermix
09/04/2009
o .jar do driver tem que estar no seu classpath
:!:
GOSTEI 0
Rpizao
09/04/2009
[quote="cybermix"]o .jar do driver tem que estar no seu classpath
:!:
Como assim cara?!?
Desculpa minha ignorancia... :cry: :wink:
Por via das dúvidas coloquei em dois locais, no classpath do meu projeto (C:\PROJETOS_JAVA) e no jdk (C:\j2sdk...\bin).
Continua o problema...
Cara, se tu puder me ajudar, to achando q eu nao estou com drive certo, me manda o drive ou diz ond posso baixa-lo, um q tu saiba q funcione, e ai sigo os mesmos passos q vc usou.
Valeu cara, to no teu aguardo ai.
Abraços.
Rafael. :!:
GOSTEI 0
Kuesley
09/04/2009
Caindo de para-quedas, meu baixe este aki:
http://www.atimonet.com.br/kuesley/JavaFree/firebirdsql-full.jar
Esse funciona posso te garantir ! hehehe
Se tu nao conseguir fala que passamos o caminha das pedras...
:o :o
GOSTEI 0
Rpizao
09/04/2009
To enrolado mano.... :x
Como eu identifico onde é meu classpath?
Já coloquei na pasta onde estão os .class, na pasta do banco e nada...
Continua dando o mesmo erro...
:cry: :cry: :cry: :cry: :cry: :cry:
To quase desistindo cara.....vou fazer enfermagem... :arrow:
GOSTEI 0
Cybermix
09/04/2009
duas maneiras de executar os jars uma delas é ir no prompt e digitar
java -cp arquivo.jar;. Programa.java
outra maneira é:
dentro do arquivos de programas tem a pasta JAVA e dentro dela tem a pasta jre/lib/ext
coloque seu .jar la :!:
GOSTEI 0
Rpizao
09/04/2009
Eu to usando jdk 1.4, fui lá no diretório dentro dele (jre/lib) e colei o firebirdsql-full.jar, cedido ai pelo kuesley.
E agora peixe?!
Qual o procedimento....tentei executar via comando e e deu esse erro.
Eu tenho que executa-lo dentro dessa pasta?
Valeu pessoal pela ajuda e conto com vcs.
Abraços...
Rafael.
Exception in thread "main" NoClassDefFoundError: Endereço_Que_eu_dei
GOSTEI 0
Claudio Paranhos
09/04/2009
[quote="rpizao"]Eu to usando jdk 1.4, fui lá no diretório dentro dele (jre/lib) e colei o firebirdsql-full.jar, cedido ai pelo kuesley.
E agora peixe?!
Qual o procedimento....tentei executar via comando e e deu esse erro.
Eu tenho que executa-lo dentro dessa pasta?
Valeu pessoal pela ajuda e conto com vcs.
Abraços...
Rafael.
Cara,
passei pela mesma situação que vc, então eu sei o que é isso.
Então vamos lá, desde o início, passo a passo.
Primeiro vc deve baixar o driver jdbc para o firebird:
- FirebirdSQL-1.5.0RC2JDK_1.4 - que pode ser encontrado em:
[url]http://www.firebird.com.br/download.php?file=5[/url]
Então vc deve descompactar o arquivo que baixou e sugiro que vc crie uma pasta no raiz, não sei qual o seu SO, mas por exemplo no Windows:
c:\drivers
e copie para lá os seguintes jars, que estão lá no arquivo que vc descompactou:
- firebirdsql.jar
- jaas.jar
- log4j-core.jar
- mini-concurrent.jar
- mini-j2ee
Depois vc deve incluir estes 5 arquivos na sua classpath.
Mas, para tanto depende do SO que vc esta usando:
No Win 98 e 2000 basta vc editar o autoexec.bat
Já no XP vc tem que acessar as propriedades do "meu computador", e na aba "avançado" clicar em variáveis de ambiente e lá incluir os drivers.
Ah, leia os tutoriais e alguns tópicos aqui do forum, acho que irá te ajudar.
[url]http://www.javafree.com.br/forum/viewtopic.php?t=1359[/url]
[url]http://www.javafree.com.br/forum/viewtopic.php?t=9205[/url]
Qualquer problema, poste aqui.
Exception in thread "main" NoClassDefFoundError: Endereço_Que_eu_dei
GOSTEI 0
Rpizao
09/04/2009
Falai cara, po vi lá......passou um sufoco pra conseguir.....
To usando o Win98 peixe, tentei definir o class path direto no autoexec, mas quando rodo da a mensagem de "erro de syntax".
Tai como estou fazendo.
Valeu cara pela ajuda e conto contigo ai pra conseguir...
Abraços...
Rafael
SET CLASSPATH: %CLASSPATH%;.; C:\j2sdk1.4.2_04\bin; C:\j2sdk1.4.2_04\jre\bin; C:\Drivers\firebirdsql.jar; C:\database\;.
GOSTEI 0
Claudio Paranhos
09/04/2009
[quote="rpizao"]Falai cara, po vi lá......passou um sufoco pra conseguir.....
To usando o Win98 peixe, tentei definir o class path direto no autoexec, mas quando rodo da a mensagem de "erro de syntax".
Tai como estou fazendo.
Valeu cara pela ajuda e conto contigo ai pra conseguir...
Abraços...
Rafael
tente assim:
SET CLASSPATH: %CLASSPATH%;.; C:\j2sdk1.4.2_04\bin; C:\j2sdk1.4.2_04\jre\bin; C:\Drivers\firebirdsql.jar; C:\database\;.
set classpath=.;C:\j2sdk1.4.2_04\bin;C:\j2sdk1.4.2_04\jre\bin;C:\Drivers\firebirdsql.jar;
set classpath=.;c:/j2sdk1.4.2_05/lib/tools.jar;c:/j2sdk1.4.2_05/lib/dt.jar; c:/j2sdk1.4.2_05/lib/htmlconverter.jar;c:/j2sdk1.4.2_05/jre/lib; c:/j2sdk1.4.2_05/jre/lib/rt.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;
GOSTEI 0
Rpizao
09/04/2009
Cara, só uma dúvida minha.
Essa parte do código significa o que velho?
Tb tenho que fazer referência a estes arquivos?
Dessa forma q vc me passou funcionou o classpath, mas o erro na conexão do banco continua.
Do jeito que eu fiz.
Valeu cara, obrigado pela ajuda.
Rafael. :!:
c:/j2sdk1.4.2_05/lib/tools.jar;c:/j2sdk1.4.2_05/lib/dt.jar; c:/j2sdk1.4.2_05/lib/htmlconverter.jar;c:/j2sdk1.4.2_05/jre/lib; c:/j2sdk1.4.2_05/jre/lib/rt.jar;c:/j2sdk1.4.2_05/jre/lib/ext/pgjdbc2.jar;
set classpath=.;C:\j2sdk1.4.2_04\bin;C:\j2sdk1.4.2_04\jre\bin;C:\Drivers\firebirdsql.jar;C:\Drivers\jaas.jar;C:\Drivers\log4j-core.jar;C:\Drivers\mini-concurrent.jar;C:\Drivers\mini-j2ee.jar;
GOSTEI 0
Claudio Paranhos
09/04/2009
Cara, só uma dúvida minha.
Essa parte do código significa o que velho?
Código:
c:/j2sdk1.4.2_05/lib/tools.jar;c:/j2sdk1.4.2_05/lib/dt.jar;
c:/j2sdk1.4.2_05/lib/htmlconverter.jar;c:/j2sdk1.4.2_05/jre/lib;
c:/j2sdk1.4.2_05/jre/lib/rt.jar;c:/j2sdk1.4.2_05/jre/lib/ext/pgjdbc2.jar;
O único arquivo que deve estar na sua classpath é o tools.jar. Os outros estavam lá pois quando eu estava lendo a respeito de variáveis de ambiente acabei incluindo e esqueci de excluir.
Dessa forma q vc me passou funcionou o classpath, mas o erro na conexão do banco continua.
Do jeito que eu fiz.
Código:
set classpath=.;C:\j2sdk1.4.2_04\bin;C:\j2sdk1.4.2_04\jre\bin;C:\Drivers\firebirdsql.jar;C:\Drivers\jaas.jar;C:\Drivers\log4j-core.jar;C:\Drivers\mini-concurrent.jar;C:\Drivers\mini-j2ee.jar;
Realmente eu tentei dessa forma e minha apliacação também não conseguiu achar o driver.
faça o seguinte.
Copie os 5 arquivos referentes ao firebird para dentro da pasta
- c:\j2sdk1.4.2_04\lib
E ao invés de incluir "C:\Drivers\firebirdsql.jar" na classpath, inclua c:\j2sdk1.4.2_04\lib\firebirdsql.jar. Faça isso para os 5 arquivos.
GOSTEI 0
Rpizao
09/04/2009
Cara, infelismente, nada...
Meu Autoexec ta assim....
Quando eu incluo o tools.jar ele da a msg "Sem espaço de ambiente".
Po bicho, ta sinistro...não to conseguindo nem a pau.... :x
set classpath=.;C:\j2sdk1.4.2_04\lib\firebirdsql.jar;C:\j2sdk1.4.2_04\lib\jaas.jar;C:\j2sdk1.4.2_04\lib\log4j-core.jar;C:\j2sdk1.4.2_04\lib\mini-concurrent.jar;C:\j2sdk1.4.2_04\lib\mini-j2ee.jar;
GOSTEI 0
Claudio Paranhos
09/04/2009
Po bicho, ta sinistro...não to conseguindo nem a pau....
Cara, acho que vc viu que eu também tomei uma surra até conseguir.
Demorei uns 10 dias.
Só uma pergunta, depois de alterar a classpath (autoexec.bat) você está reiniciando sua máquina né ? Pois caso contrário não vai ter efeito nenhum.
Faça o seguinte reinicie sua máquina e no prompt do DOS digite "set" e poste aqui o resultado do comando para que eu possa analisar.
GOSTEI 0
Rpizao
09/04/2009
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();
}
}GOSTEI 0
Claudio Paranhos
09/04/2009
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:
O meu properties está assim:
A minha classpath está assim:
E os meus drivers (jdbc para o fire), como vc pode ver na classpath, estão na seguinte pasta:
Dê uma olhada e verifique se não tem nada de diferente. :!:
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;
}
}
driver = org.firebirdsql.jdbc.FBDriver url = jdbc:firebirdsql:192.168.2.33/3050:d:Mid/Db/Mid.fdb user = SYSDBA password = masterkey
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;
C:\j2sdk1.4.2_05\lib
GOSTEI 0
Rpizao
09/04/2009
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 é:
Valeu cara....tomara q apartir dai de td certo....
Abraços.
Rafael. :!:
java.lang.NullPointerException
GOSTEI 0
Claudio Paranhos
09/04/2009
Posta o código aqui
GOSTEI 0
Rpizao
09/04/2009
Desculpai o plágio velho......conseguindo fazer funcionar vou dar uma modificada.
Tai ele.
Valeu parcero...
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);
}
}
}
GOSTEI 0
Claudio Paranhos
09/04/2009
Cara,
primeiro tente entender o que a minha classe está fazendo. :oops:
vc sobreescreveu o construtor ConnectionFactory(), desta forma:
repare que na assinatura do método original, ele está recebendo um arquivo:
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:
public ConnectionFactory()
public ConnectionFactory(File config) throws IOException
ConnectionFactory factory = new ConnectionFactory(new File("../DB/Mid.properties"));
Connection c = factory.getConnection();GOSTEI 0
Rpizao
09/04/2009
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... :!:
GOSTEI 0
Claudio Paranhos
09/04/2009
É 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]
GOSTEI 0
Rpizao
09/04/2009
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
Valeu cara, até...
Rafael.
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)
GOSTEI 0
Claudio Paranhos
09/04/2009
voce já registrou os 5 drivers do firebird no Netbeans ?
GOSTEI 0
Rpizao
09/04/2009
Retorno esse erro ai, eu já tinha colocado todos os .jars q veio no driver agora coloquei só os 5 que vc me falou.
PS: Tem um botão que testa o driver pra ve se está ok, e deu td certo nesse teste.
Valeu... :!:
Rafael.
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".)
GOSTEI 0
Rpizao
09/04/2009
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.
GOSTEI 0