conexão banco

6 respostas
B

ola galera

criei uma classe para conectar ao banco ..... tem um erro na classe que eu naum consegui resolve... espero que alguem ja tenho visto algo parecido

segue ai a minhah classe

o erro é o seguinte: "The operator <= is undefined for the argument type(s) int, Integer"

e ela ta no metodo Vector sqlExec e na variavel "nQtdCol".

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

public class dbConect
   {
   
   final static private String driverName = "org.firebirdsql.jdbc.FBDriver";
   private String serverName = "127.0.0.1";
   private String portNumber = "3050";
   private String sid = "d:\\ornitol\\ornito.fdb";
   private String url = "jdbc:firebirdsql:" + serverName + "/" + portNumber + ":" + sid;
   private String username = "SYSDBA";
   private String password = "masterkey";
   private Connection con;
   private Statement st;
   
   public boolean liga()
   {
    	boolean resultado = true;

   		try {
        	// Carga do dirver JDBC
        	Class.forName(driverName);
    
    	    // Cria uma conexão com o Banco de Dados desejado
        	con = DriverManager.getConnection(url, username, password);
        } 
    	catch (ClassNotFoundException e) {
        	// Não conseguiu carregar o drive de conexão JDBC especificado
        	mostraErro( e.getMessage() );
        	resultado = false;
    	} 
    	catch (SQLException e) {
        	// Não conseguiu conectar o banco de dados especificado
        	mostraErro( e.getMessage() );
        	resultado = false;
    	}
    return resultado;
   	}
   	
   public void desliga()
    	{
	   		try   { con.close(); }
    		catch (SQLException e) { mostraErro( e.getMessage() ); }
    	}   	
   
   public boolean dmlExec(String dml){
   		boolean resultado = true;
   		try {
   			st = con.createStatement();
   			st.executeUpdate(dml);
   			st.close();
   		}
   		catch(SQLException e) {
   			mostraErro( e.getMessage() );
   			resultado = false;
   		}
   		return resultado;
   }
   
   public Vector sqlExec(String sql, Integer nQtdCol){
   		Vector resultado = new Vector();
   		try {
   			st = con.createStatement();
   			ResultSet rs = st.executeQuery(sql);
   			while (rs.next()){
				Vector linha = new Vector();
   				for (int n = 1; n <= nQtdCol; n++) {
   					linha.addElement(rs.getString(n));
   				}
   				resultado.addElement(linha);
   			}
   			st.close();
   		}
   		catch(SQLException e) {
   			mostraErro( e.getMessage() );
   		}
   		return resultado;
   }   
   
   private void mostraErro(String msg){
   		JOptionPane.showMessageDialog(null, msg, "Notificação de Erro",JOptionPane.ERROR_MESSAGE);
   		}
   
   	}

valew

abraço :thumbup:

6 Respostas

maquiavelbona

Integer é diferente de int!
Veja se consegue transformar o Integer em int.

Até!

ramilani12

Acho que vc está passando um tipo primitivo int para objeto Integer troque seu parametro para int ou crie um obejto Integer

alberto_ribeiro

Bom dia, tente fazer assim:

for (int n = 1; n <= nQtdCol.intValue(); n++) {
            
}

[]'s espero ter ajudado

_Renatu

substitua nQtdCol no seu for por nQtdCol.intValue()

ViniGodoy

Além do que o pessoal falou:

Considere usar um ArrayList no lugar do Vector.
Considere colocar a interface List o valor de retorno de sua função.
Não esqueça de fechar o Statement num finally.

Por exemplo:

public List sqlExec(String sql, Integer nQtdCol){
   List resultado = new ArrayList();
   try {
      st = con.createStatement();
      ResultSet rs = st.executeQuery(sql);
      while (rs.next()){
         List linha = new ArrayList();
         for (int n = 1; n &lt= nQtdCol.intValue(); n++) {
            linha.add(rs.getString(n));
         }
         resultado.add(linha);
      }
   } catch(SQLException e) {
      mostraErro( e.getMessage() );
   } finally {
      if (st != null)
         st.close();
   }

   return resultado;
}

Isso torna o seu código menos sensível a mudanças e mais de acordo com o uso atual da Collections Framework.

A menos é claro que você esteja codificando para um Applet em Java 1.1 (argh).

B

valew pela dica galera … do testando aqui todas elas …

abraço

Criado 2 de março de 2007
Ultima resposta 5 de mar. de 2007
Respostas 6
Participantes 6