Erro no POOL

7 respostas
A

Pessoal, como eu posso testar se meu pool esta funcionando direito, quero dizer, criei uma classe de conexao e nela tudo OK, pois faco alguns INSERT, SELECT e UPDATE, creio estar corretos, mas quando vou fazer o pool, ai aparece o problema, eu tento comparar um campo com o outro e se eles estiverem corretos eu abro minha app, ou seja, é uma interface de Login.

Usuario
Senha

botao

app principal

O problema é que quando eu faco o pool, nada acontece, basta clicar em OK que eu fecha tudo, o que pode ser ??

valew por enquanto
[]s

7 Respostas

Rafael_Steil

A descricao do seu problema esta extremamente vaga. Um pouco de codigo ajudaria (nao o codigo da sua aplicacao inteira), ou dados mais precisos sobre o problema.

Rafael

A

é esta bem vago, vou postar entao o codigo

try{
            ConectarSQL FazerLogin = new ConectarSQL();
            PreparedStatement pstm = FazerLogin.con.prepareStatement("SELECT Nome, Senha FROM tbl_login where Nome = ? and Senha = ?");
            ResultSet rs = pstm.executeQuery();
            
            pstm.setString(1,"Nome");
            pstm.setString(2,"Senha");
            
            System.out.println(pstm);
            
            if(rs.next()) {
                /* foram encontrados dados */
                javax.swing.JOptionPane.showMessageDialog(null, "Nome de arquivo invalido",
                "Sistema de Frigorifico", javax.swing.JOptionPane.ERROR_MESSAGE);
            }
            else {
                /* Abre janela principal */
                frmPrincipal principal = new frmPrincipal();
                principal.show();
                this.hide();
            }
        }catch(SQLException e){
            System.out.println(e.getMessage());
        }

Tenho uma classe que faz a conexao, essa esta OK

valew

Mauricio_Linhares

Não sei se você precebeu, mas você está executando a query antes de passar os parâmetros pra ela! :shock:

A

verdade
mas como eu estou instanciando minha classe de conecao ele ja nao deveria estar fazendo isso ??

Mauricio_Linhares

Só se ele advinhasse os parâmetros.

Veja se assim funciona:

ConectarSQL FazerLogin = new ConectarSQL();
             PreparedStatement pstm = FazerLogin.con.prepareStatement("SELECT Nome, Senha FROM tbl_login where Nome = ? and Senha = ?");
             
             pstm.setString(1,"Nome");
             pstm.setString(2,"Senha");

             ResultSet rs = pstm.executeQuery();

Outra coisa, em vez de colocar nome e senha como parâmetros, você não deveria colocar o nome e a senha a serem pesquisados não?

A

Tres coisas mauricio,

Uma se eu entendi o que vc quis dizer, é que eu nao postei, mas eu tenho duas variaveis que recebem o nome e a senha.

Outra é quando eu instancio minha classe fazendo com que ela pegue os parametros de conexao ??

A ultima é que nao funciona, a mesma historia, vc clica em OK e ele fecha a tela de login, como se fizesse exit(0);

Como eu posso fazer isso ?

Mauricio_Linhares

O problema não é a conexão, é que você está criando um PreparedStatement com dois espaços (?), está mandando ele executar vazio (ele nunca vai retornar nada) e está colocando os parâmetros depois que ele foi executado. Na verdade nem parece que você está colocando os parâmetros, porque você está usando os mesmos nomes das colunas da tabela (Nome e Senha).

O correto é criar o PreparedStatement, preencher ele com os parâmetros necessários (que devem ser essas variáveis que você tem e não estão aparecendo) e depois executar o PreparedStatement.

É melhor você dar uma estudada em JDBC primeiro.

Criado 3 de junho de 2005
Ultima resposta 5 de jun. de 2005
Respostas 7
Participantes 3