Boa noite!!! Fiz uma classe java para conexao com o banco de dados.Quando executo o
javac Bco.java - executa normal
mais quando eu executo
java Bco ocorre erro e eu não sei corrigir.
eu coloquei o jaybird dentro da pasta lib dentro da WEB-INF
import java.sql.*;
public class Bco
{
public static void main(String args[])
{
System.out.println("#testando acesso a banco de dado Firebird\n\n");
Connection conn = null;
String teste = "SELECT NOMECLIENTE FROM CLIENTES;";
try
{
Class.forName("org.firebirdsql.jdbc.FBDriver");
conn = DriverManager.getConnection( "jdbc:firebirdsql:192.168.100.100/3050://opt/webappbase/webapps/sisfraldas/sisfraldas.fdb", "SYSDBA", "fbmbm_011");
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();
}
}
}
}
identar texto pré-formatado por 4 espaços
Mano, eu sou novato nessa parte de sql, mas vou tentar te ajudar…
Eu tenho aqui um código de conexão que funciona. Nele eu não usei firebird, e como sou novato não tenho certeza se isso deve comprometer o código, mas enfim…
Nesse meu código eu tentei usar o Class.forName()
e também recebi a exceção ClassNotFound
, mesmo com meu driver estando na WEB-INF/lib. O que eu fiz foi remover esse método e registrar o meu driver usando DriverManager.registerDriver()
, que eu notei que no seu código está faltando.
Desde então meu código funciona de boa.
Bom dia!!!
Tentei também!!! Infelizmente não deu certo! O que será que estou fazendo de errado!?
Pasta WEB-INF/lib? Isso é um projeto web?
Não deveria ser um server (Tomcat, por ex) a executar seu projeto?
Sim, um projeto web.Mais eu queria testar a classe para ver se está conectando o banco de dados certinho
Estou fazendo sem ide, só no bloco de notas.
Não é assim, que eu testo???
javac Bco.java
java Bco
???
A WEB-INF/lib é a pasta onde o server carrega as dependências.
O comando “java” não usa ela.
Tente isso:
java -cp .:WEB-INF/lib/nomedojar.jar Bco
Não deu certo, nossa que coisa dificil, e eu sou iniciante, to quase para desistir!
abr 17, 2021 11:51:45 AM org.firebirdsql.logging.JulLogger warn
ADVERTÊNCIA: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
Sucesso na conexão! Massacre!
SQL Exception… Erro dos Bravos
java.sql.SQLException: Column name NOME not found in result set.
at org.firebirdsql.jdbc.AbstractResultSet.findColumn(AbstractResultSet.java:1200)
at org.firebirdsql.jdbc.AbstractResultSet.getField(AbstractResultSet.java:800)
at org.firebirdsql.jdbc.AbstractResultSet.getString(AbstractResultSet.java:844)
at Bco.main(Bco.java:23)
Agora deu certo!!!
só falta esse corrigir esse erro aqui
abr 17, 2021 11:57:34 AM org.firebirdsql.logging.JulLogger warn
ADVERTÊNCIA: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
Tente essa URL:
"jdbc:firebirdsql:192.168.100.100/3050://opt/webappbase/webapps/sisfraldas/sisfraldas.fdb?encoding=UTF8"
RoinujNosde, agora foi!!! Muito obrigado!!!
Poderia tirar mais uma dúvida minha???
Eu instalei o servidor jetty, agora para essa conexão funcionar com meu framework e o código, é só eu colocar o jaybird dentro da pasta lib do jetty ???
Assim:
Se não me engano, essa pasta lib do jetty é para dependências compartilhadas em mais de um webapp.
Então deve funcionar colocando lá.
Também tem a pasta WEB-INF/lib do próprio webapp.
Boa noite!!!Tenho minha classe de conexão e uma pagina para testar a conexão.A pagina está carregando normal,mais quando clico no botão ok e chama a função clique() ele dá erro, não consigo descobrir o que é?
Java + Framework ZK
/////////////////////////////////////////////////////////////////////////////////////
Minha conexão!
import java.sql.*;
public class Conexao
{
//usuario e senha
private String login = "SYSDBA";
private String senha = "fbmbm_011";
private String url = "jdbc:firebirdsql:192.168.100.100/3050:/opt/webappbase/webapps/sisfraldas/sisfraldas.fdb?encoding=UTF8";
//objeto do tipo Connection para estabelecer a conexão
public Connection conexao = null;
//objeto Statement usado para enviar consultas para o banco de dados
public Statement stmt = null;
public ResultSet r = null;
public Conexao(){ }
public Connection abreConexaoBD()
{
try
{
try
{
Class.forName("org.firebirdsql.jdbc.FBDriver");
}
catch (ClassNotFoundException ex)
{
return null;
}
try
{
//efetua conexao com o banco de dados
this.conexao = (Connection) DriverManager.getConnection(url,login,senha);
}
catch (SQLException ex)
{
return null;
}
return this.conexao;
}
catch (Exception e)
{
return null;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////
Minha pagina de testar a conexão
<?page title="" contentType="text/html;charset=UTF-8"?>
<zk>
<zscript>
<![CDATA[//@IMPORT
import java.sql.*;
import Conexao;
]]>
</zscript>
<window title="" border="normal" width="300px" height="300px">
<button id="botao" label="OK" onClick="clique()" />
<zscript>
<![CDATA[
void clique() throws SQLException
{
Conexao c = new Conexao();
Connection conn = c.abreConexaoBD();
if (conn == null)
botao.setLabel("nao conectou....");
else
{
botao.setLabel("Conectou...");
ResultSet r = null;
Statement st = conn.createStatement();
r = st.executeQuery("select * from CLIENTES");
if (r.next())
botao.setLabel("Conectou: achei registro");
else
botao.setLabel("Nao achei registro");
}
}
]]>
</zscript>
</window>
</zk>