Erro em método de seleção

5 respostas
ATEN

Este método funciona perfeitamente local, mas uma vez que o coloco no servidor ele so retorna falso. Logo ele não deve estar encontrando a tabela.
Eu fiz a aplicação toda em ambiente windowns, o servidor esta em linux e estou usando o apache tomcat 7.0

Quando criei o banco de dados, dei o nome para tabela “Aluno”, entretando nao sei se tem alguma direfença para o MySql e o jdbc entre maiuscula e minusculas para nomeação de tabelas, pois como disse, localmente a aplicação funciona e esse método não retorna so false. mas no servidor ele nao rola.

// VERIFICAR SE ALUNO SE ENCONTRA NO BANCO DE DADOS
    public boolean verificaAluno(Aluno aluno) {
        String comando = "Select * from aluno";
        boolean resultado = false;
       
        try {
            PreparedStatement p = this.conexao.prepareStatement(comando);
            ResultSet rs = p.executeQuery();
            while (rs.next() && !resultado) {
                    if (rs.getString("nomeAluno").equals(aluno.getNome()) &&  rs.getString("matricula").equals(aluno.getMatricula())){
                    resultado = true;
                }
            }
            rs.close();
            p.close();
            return resultado;
        } catch (Exception e) {
            System.out.println("erro ao selecionar");
            e.printStackTrace();
        }
        return resultado;
    }

Aguem teria alguma ideia do que esta ocorrendo, algum erro de configuração ou algo do tipo?

[]s

5 Respostas

Diguinho.Max

os nomes de tabelas atributos tem que ser exatamente como esta no banco amigo.

M

Acho que você poderia tentar montar o seu sql assim, até para otimização de performance.

String comando = "Select * from aluno where id = ? and nomeAluno = ? and matricula = ?";
PreparedStatement p = this.conexao.prepareStatement(comando); 
p.setInt(1, aluno.getId());
p.setString(2, aluno.getNomeAluno());
p.setString(3, aluno.getMatricula());
ResultSet rs = p.executeQuery(); 

// agora deve retornar somente um registro do banco
// compara com ele

Boa sorte

ATEN

eu sei que os nomes dos Atributos(colunas) devem ser iguais, mas o nome da tabela tb deve ser igual, pois aqui funciona tanto eu dando “Select * from Aluno” quanto “Select * from aluno”

Murilo_Ferreira
é murilo creio que terei que fazer algo desse jeito mesmo.

D

1 - Verifica a string de conexão.
2 - Verifica se consegue acessar o servidor remotamente.
3 - O MySQL tem uma configuração de não permitir acesso externo, verifique se o login está configurado para receber acesso externo.

Penso nessas 3 coisas, passei por algo semelhante porem o meu problema na época era a opção 3.

brmonteiro

mostra sua classes de conexao com o banco

Criado 23 de novembro de 2011
Ultima resposta 23 de nov. de 2011
Respostas 5
Participantes 5