Criando Conexao Firebird Java

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>