Classes

7 respostas
L

BOM DIA.
ALGUÉM PODERIA SE POSSÍVEL ME DAR UM EXEMPLO DE COMO CRIAR UMA CLASSE COM O CÓDIGO PARECIDO COM O ABAIXO, E DEPOIS CHAMAR ESTA CLASSE, EM OUTRA PARTE (JFRAME) DO PROGRAMA? JÁ ESTOU TENTANDO A DIAS MAS NÃO CONSIGO. O RESULTADO QUE ESPERO É CRIAR UMA ÚNICA CONEXÃO COM O BANCO, PARA PODER USAR NO RESTO DO SISTEMA SEM TER DE REDIGITAR TODO O PROCEDIMENTO.
OBRIGADO

package teste.jdbc;

import java.sql.*;

class Teste1
{

public static void main(String args[])   
  {   

     

     
  Connection con = null;          

  try    
  {   
         
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance();   
      
      
      con = DriverManager.getConnection("jdbc:odbc:teste","user","senha");   


      Statement stm = con.createStatement();     
  
        
      String SQL = "Select * from teste";   

    
      ResultSet rs = stm.executeQuery(SQL);   
  

              {   

       rs.first;
      }   

  }   
  catch(SQLException e)   
  {   
           e.printStackTrace();
  }   
  finally  
  {   
     try    
     {   
        con.close();   
     }   
     catch(SQLException onConClose)   
     {   
         System.out.println("Houve erro");   
         onConClose.printStackTrace();   
     }   
  } 
  }

}

7 Respostas

afdestro

da uma lida em orientação a objetos cara…
primeiro de tudo tira aquele public static void main…
afinal essa classe é apenas conexão com o banco…
ela não é o programa principal…
para chamar ela num jframe… cria um objeto…
Teste1 t = new Teste1;
dai é só chamar o metodo que vc criar no lugar do main…

ViniGodoy

O colega aí tem razão. Você precisa entender mais de orientação a objetos, de como organizar suas classes, etc.

Em anexo está um exemplo do seu programa, organizado em 2 classes. A DBConnection cria uma única conexão e permite que você execute consultas, retornando para cada uma um RowSet. Ela também garante que o Statement e o ResultSet serão fechados (o que é muito importante). Outra coisa, ela também não ignora exceções. Ao invés de um e.printStackTrace(), a classe irá transformar a SQLException (checked) em uma IllegalStateException (unchecked) que não precisa ser obrigatoriamente capturada.

A outra classe contém um método main que usa a DBConnection para executar o SQL “SELECT * FROM Teste”. Ela então exibe todos os resultados que estiverem na primeira coluna.

Observação:
O e.printStackTrace() da forma que você usou é extramamente prejudicial. Dessa forma a exceção não só é solenemente ignorada como a execução do programa continua, gerando resultados inesperados e aumentando o caos com o tempo. Para mais informações sobre esse assunto:
http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/

L

VALEU GALERA.
EU SEI QUE PRECISO MELHORAR MEUS CÓDIGOS, MAS ESTE EU CRIEI SÓ DE EXEMPLO E SÓ TEM DUAS SEMANAS QUE ESTOU ESTUDABDO JAVA, E AINDA NÃO CONSEGUI ME DESVENCILHAR TOTALMENTE DAS IDEIAS DO DELPHI. AS DICAS FORAM MUITO BOAS E ÚTEIS, ME ESCLARECERAM MUITA COISA, VALEU MESMO.

ksi

Tudo bem, só não grite com a gente, rs.

Petronio_Braga

leandrocandido,

além do que já foi falado, dá uma olhada nesse material da caelum. Ajudará bastante a sua caminhanda.

L

mais uma vez obrigado.
semana que vem eu posto uma mensagem comentando os resultados.

willythorpe

Cara “o caminho das pedras” é o que o pessoal falou aí em cima :wink:

Siga as instruções da galera e vá em frente. Como toda linguagem se faz necessário dedicação e muito estudo, com JAVA não é diferente.

Dá uma olhada com calma nesse material que Petrônio Braga indicou “CAELUM” é um material excelente para você tirar muitas duvidas.

Eu li e achei muito legal 8)

Criado 11 de janeiro de 2007
Ultima resposta 11 de jan. de 2007
Respostas 7
Participantes 6