Velho Problema: Conexao FB

4 respostas
R

Pessoal,

Sou altamente novato em JAVA :grin:
O código que vou postar, peguei aqui mesmo no forum e ja revirei todo o forum em busca de respostas sobre o mesmo, mas ainda tá dando erro... Já fiz de tudo, joguei os arquivos .jar na pasta da "aplicacao", alterei de todas as formas o CLASS_PATH, e outras artimanhas...
O erro que dá eh esse:

Falha ao Carregar o Driver JDBC
java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:141)
        at TestarConexao.<init>(TestarConexao.java:20)
        at TestarConexao.main(TestarConexao.java:129)
Press any key to continue...

O código é esse:

import java.sql.*; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 

  
public class TestarConexao extends JFrame { 
private Connection conn; 
private JTable table; 
  
public TestarConexao() { 

  String url = "jdbc:firebirdsql:localhost/3050:D:/Java/Projeto/_DB/PROJETO.FDB"; 
  String username = "SYSDBA"; 
  String password = "masterkey"; 
  
  // Carrega o driver para permitir conexão ao banco de dados 
  try{ 
         Class.forName("org.firebirdsql.jdbc.FBDriver"); 
         conn = DriverManager.getConnection(url, username, password); 
      } 
      catch(ClassNotFoundException cnfex){ 
         System.err.println("Falha ao Carregar o Driver JDBC"); 
         cnfex.printStackTrace(); 
         System.exit(1); 
      } 
      catch(SQLException sqlex){ 
         System.err.println("Nao pode conectar"); 
         sqlex.printStackTrace(); 
      }
  
  getTable(); 
  setSize(450, 150); 
  show(); 
} 
  
private void getTable() { 
  Statement statement; 
  ResultSet resultSet; 
  
  try {
  	String query = "SELECT * FROM GENERO";
  	
  	statement = conn.createStatement();
  	resultSet = statement.executeQuery(query);
  	displayResultSet(resultSet);
  	statement.close(); 
  }
  
  catch (SQLException sqlex) {
  	sqlex.printStackTrace();
  }
  
} 
  
private void displayResultSet(ResultSet rs) 
  throws SQLException { 
  
  // posiciona para o primeiro registro 
  boolean moreRecords = rs.next();
  
  // Se não houver registros, exibe uma mensagem 
  if (!moreRecords) {
  	JOptionPane.showMessageDialog(this, "Nenhum registro foi encontrado!");
  	setTitle( "Nenhum registro será exibido");
  	return; 
  }
  
  setTitle("Cadastro de Gêneros" );
  
  Vector columnHeads = new Vector();
  Vector rows = new Vector();
  
  try {
  	// obtém títulos de coluna 
  	ResultSetMetaData rsmd = rs.getMetaData();
  	
  	for (int i = 1; i <= rsmd.getColumnCount(); ++i)
  	columnHeads.addElement( rsmd.getColumnName( i ) );
  	// obtém dados da linha
  	do {
  		rows.addElement(getNextRow(rs,rsmd));
  	} while (rs.next());
  	
  	// exibe a tabela com conteúdos de ResultSet
  	table = new JTable(rows, columnHeads);
  	JScrollPane scroller = new JScrollPane(table);
  	getContentPane().add(scroller, BorderLayout.CENTER);
  	validate();
  } 
  
  catch (SQLException sqlex) {
  	sqlex.printStackTrace();
  }
  
} 
  
private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd) 
  throws SQLException { 
  
  Vector currentRow = new Vector();
  
  for (int i = 1; i <= rsmd.getColumnCount(); ++i) 
  switch( rsmd.getColumnType( i ) ) {
  	case Types.VARCHAR:
  	currentRow.addElement(rs.getString(i)); break; 
  	case Types.INTEGER:
  	currentRow.addElement(new Long(rs.getLong(i))); break; 
  	default: System.out.println("Tipo: " + rsmd.getColumnTypeName(i));
  }
  
  return currentRow;
}
  
public void shutDown() {
	try { 
	  conn.close();
	}
	
	catch ( SQLException sqlex ) {
		System.err.println( "Impossível Conectar" );
		sqlex.printStackTrace();
	}
}
 
public static void main(String args[]) {
	
	final TestarConexao app = new TestarConexao(); 
	app.addWindowListener(new WindowAdapter() {
		public void windowClosing(WindowEvent e){
			app.shutDown();
			System.exit(0);
		}
	});
		
} 
}

4 Respostas

M

Vc mencionou “CLASS_PATH”, com o underline… aqui eu uso td junto “CLASSPATH”, não sei se tem alguma coisa aver…

e desculpa ir invadindo o tópico… eu estou com o seguinte problema, tbm com o Firebird (1.5.2).
quando eu uso o metodo "getConnection(url, user, password), ele me retorna esse erro:

Cannot get the value for this argument type as a string.

eis o código:

public Connection getConexao(String strNomeBD) { Connection conn; try { conn = DriverManager.getConnection("jdbc:firebirdsql:127.0.0.1/3050:"+ strNomeBD, "sysdba", "123"); return conn; } catch (SQLException sqlex) { System.out.println("Erro ao estabelecer conexão!\n" + sqlex.getMessage()); return null; } catch (Exception ex) { System.out.println("Erro não previsto: " + ex.getMessage()); return null; } }

estou usando Slack 10 e java 1.5
vlw!!

R

bom CLASSPATH é junto, já colocou o .jar do Firebird na pasta lib do java?

falows :cool:

M

rivo…
eu coloquei os .jar na pasta …/lib/ext. Antes tinha colocado só o “firebirdsql-full.jar”, mas com o erro, coloquei todos, mas continuou o erro.
Só um outro detalhe: se eu usar o “getConnection(url)”, funciona normal :???: vai entender…

Obrigado!!

R

“morocos”:
Vc mencionou “CLASS_PATH”, com o underline… aqui eu uso td junto “CLASSPATH”, não sei se tem alguma coisa aver…

e desculpa ir invadindo o tópico… eu estou com o seguinte problema, tbm com o Firebird (1.5.2).
quando eu uso o metodo "getConnection(url, user, password), ele me retorna esse erro:

Cannot get the value for this argument type as a string.

eis o código:

public Connection getConexao(String strNomeBD) { Connection conn; try { conn = DriverManager.getConnection("jdbc:firebirdsql:127.0.0.1/3050:"+ strNomeBD, "sysdba", "123"); return conn; } catch (SQLException sqlex) { System.out.println("Erro ao estabelecer conexão!\n" + sqlex.getMessage()); return null; } catch (Exception ex) { System.out.println("Erro não previsto: " + ex.getMessage()); return null; } }

estou usando Slack 10 e java 1.5
vlw!!

Po cara baguncou o meu tópico… :sad:
mas tudo bem…
To usando CLASSPATH tudo junto sim e continua o erro… ja descompactei os arquivos .jar que vem no arquivo .zip do driver do FB todos na pasta lib e continua sem acessar…

Criado 13 de fevereiro de 2005
Ultima resposta 13 de fev. de 2005
Respostas 4
Participantes 3