Migrando do Delphi para Java, Duvida Basica para Iniciante

2 respostas
R

Ola meu nome e Ricardo Scarpim, tenho boa experiencia em delphi e estou definitivamente migrando para java, moro nos EUA e aqui so se fala em java, entao decidi iniciar o meu aprendizado, ate ai tudo bem, comprei alguns dvds do professor Neri e estou seguindo, mais agora comecam a aparecer as dificuldades.

Estou fazendo um metodo para a conexao com a base de dados , a ideia e a seguinte, nao quero conectar ao abrir o meu form, e sim quando por exemplo, clicar no botao incluir, ou realizar uma pesquisa, dai chamaria o metodo de conexao com o banco, seria mais ou menos isto:

try
{

Class.forName(driver);
                conexao     = DriverManager.getConnection(url, usuario, senha);
                statement   = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                              ResultSet.CONCUR_READ_ONLY);

                JOptionPane.showMessageDialog(null, "Conexao Realizada com Sucesso. ");

            // Setando o Valor de que Conectou.
            result = true;

        }
        catch(ClassNotFoundException Driver)
        { bla, bla, bla.

O que gostaria na verdade e testar, realizar uma condicao, se o banco ja estiver conectado, nao conectar, algo como em Delphi seria, If(DataBase.Connected = true) then bla, bla, bla.
Pessoal fui claro ?

Espero ter sido claro pessoal e aguardo a ajuda de voces, um forte abraco a todos, Ricardo Scarpim.

2 Respostas

F

Iniciar conexões com o banco de dados são operações custosas, a conexão com o banco de dados é feita geralmente no inicio da aplicação e são colocadas em variavéis staticas ou em classes singletons, desta forma toda vez que você precisar de uma conexão, você não abre uma nova, mais usa a conexão que foi criada na primeira vez que você a chamou. Caso queira verificar se a conexão ja foi inicializada faria algo como:

if (ConnectionFactory.getConnection() != null){
	// faz algo
}

mais na verdade isso não faz muito sentido, porque como disse a conexão é feita uma unica vez e caso tenha ocorrido algum problema na rede que ocasione uma falha não sera percebida até o momento que você necessite usa-la. Se sua rotina necessita de uma conexão, não tela disponivel é uma exeção, não deve estar no corpo principal da rotina, você deve trata-la como tal (exeção), use blocos try-catch. Falhas na abertura de conexão e/ou utilização destas são normalmente casos em a aplicação não poderá se recuperar, nestes casos a melhor coisa a fazer é avisar do erro e finalizar a aplicação. Segue abaixo exemplo:

try{
	Connection conn = ConnectionFactory.getConnection();
	
	// um simple select
	PreparedStatement st = conn.prepareStatement("select * from contatos");
	
	// continua codificação
} catch (SQLException e){
	// tratar exeção
}
R

Cara, na boa, vou te dar uma conselho e recomendo que vc implemente antes de seguir as video aulas do neri… dai depois vc consulta pra eventuais duvidas

As aulas do neri sao boas e tem até umas lógicas ótimas, mas ele nao utiliza o paradigma ORIENTACAO A OBJETOS e utiliza muitas coisas “porcas”, até me desculpe o jeito de falar
pq o java permite vc usar coisas mais simples, mas ele mostra um jeito que é facil mas é mal implementado

ele nao utiliza o preparedstatement por exemplo, ele usa 2 classes para conectar com o banco de dados e mais varias coisas

procure utilizar o metodo DAO, vc separa todo seu SQL da lógica

abss

Criado 16 de dezembro de 2009
Ultima resposta 15 de jan. de 2010
Respostas 2
Participantes 3