Ir ao conteúdo

Posts recomendados

Postado
Selecione uma das opções abaixo: 
1 - para inserir um aluno no sistema.
2 - para visualizar todos os alunos cadastrados no sistema.
3 - para sair do sistema.
************************************************************
Resposta: 1
Informe o nome do aluno:Nivldo
Informe a data de nascimento do aluno:03/02/1980
Informe o curso do aluno:ads
Informe o RA do aluno:34566
nov 19, 2019 11:27:02 AM DAO.FabricaConexao conexao
GRAVE: null
java.sql.SQLException: Access denied for user 'poo'@'localhost' (using password: NO)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at DAO.FabricaConexao.conexao(FabricaConexao.java:35)
	at DAO.DAOAluno.conectar(DAOAluno.java:36)
	at DAO.DAOAluno.insereAluno(DAOAluno.java:51)
	at visao.CadastrarAluno.validacaoCadastro(CadastrarAluno.java:51)
	at visao.CadastrarAluno.telaCadastro(CadastrarAluno.java:41)

 

Postado

Bom dia @Nino2019

 

4 minutos atrás, Nino2019 disse:

java.sql.SQLException: Access denied for user 'poo'@'localhost' (using password: NO)

 

O seu usuário ou a sua senha estão incorretos, por isso o java não consegue abrir uma conexão com o seu banco de dados.

 

Poderia colocar aqui o código fonte que faz a sua conexão com o banco de dados?

  • Amei 1
Postado

@Leonardo0308 @Leonardo0308 @Leonardo0308 @Leonardo0308 @Leonardo0308 @Leonardo0308

package DAO;

import dominio.Aluno;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * Classe DAOAluno
 Autora Profª Ligia
 09/11/2016
 Código didático disponibilizado pela professora - IFTM/campus Patrocínio   
 */
public class DAOAluno 
{
    
     //Classe responsável pela conexão (sessão) com um banco de dados específico. 
    //As instruções SQL são executadas e os resultados são retornados dentro do contexto de uma conexão.
     private Connection con;
     
    //Pre-compila a query para o banco de dados
    // Cria um objeto PreparedStatement para enviar instruções SQL parametrizadas para o banco de dados.
    //Uma instrução SQL com ou sem parâmetros IN pode ser pré-compilada e armazenada em um objeto PreparedStatement.
    //Esse objeto pode ser usado para executar essa instrução de forma eficiente várias vezes. 
    private PreparedStatement comando;
    
    private final FabricaConexao fConexao = 
            FabricaConexao.getInstancia();
    
    // Método acessado internamente para conectar com o banco
    private void conectar()
    {
        con = fConexao.conexao();
    }
    
    //Método que fecha a conexão com o banco
    private void fechar(){
        try{
            comando.close();
            con.close();
        }catch(SQLException e){
            System.err.println("Erro ao fechar conexão\n"+e.getMessage());
        }
    }
    
    public boolean insereAluno(Aluno aluno){
        
        conectar();
        String sql = "INSERT INTO ALUNO(NOME, "
                + "DATA_NASCIMENTO, CURSO, RA) "
                + "VALUES(?,?,?,?)";
        try
        {
            comando = con.prepareStatement(sql);
            comando.setString(1, aluno.getNome());
            comando.setString(2, aluno.getDataNascimento());
            comando.setString(3, aluno.getCurso());
            comando.setString(4, aluno.getRa());
           
            comando.execute();
            
            return true;
        }
        catch(SQLException e)
        {
            System.err.println("Erro ao inserir Aluno\n"+e.getMessage());
        }
        finally
        {
            fechar();
        }
        return false;
    }
    
    public  ArrayList<Aluno> selecionarTodosRegistros()
    {
        conectar();
        //interface utilizada pra guardar dados vindos de um banco de dados
        ResultSet rs;
        String sql = "SELECT * FROM ALUNO";
        //lista que conterá todas as informações de pessoas no banco de dados
        ArrayList<Aluno> listaAlunos = new ArrayList();
        try
        {
            comando = con.prepareStatement(sql);
            rs = comando.executeQuery();
            while(rs.next())
            {
                Aluno aluno = new Aluno();
                aluno.setNome(rs.getString("NOME"));
                aluno.setDataNascimento(rs.getString("DATA_NASCIMENTO"));
                aluno.setCurso(rs.getString("CURSO"));
                aluno.setRa(rs.getString("RA"));
                listaAlunos.add(aluno);
            }
            return listaAlunos;
        }
        catch(SQLException e)
        {
            System.err.println("Erro visualizar Alunos\n"+e.getMessage());
            return null;
        }
        finally
        {
            fechar();
        }
    }
    
    

}

package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;


public class FabricaConexao {
    //Padrão Singleton
   //Garantir que uma classe tenha uma, somente uma instância e forneça um ponto 
    //global de acesso para a mesma.
    private static FabricaConexao instanciaUnica;
    
    private FabricaConexao(){}
    
    public static FabricaConexao getInstancia()
    {
        if(instanciaUnica == null) instanciaUnica = new FabricaConexao();
        return instanciaUnica;
    }
    
     public Connection conexao()
     {
        //Classe que fornece informações de tabelas, SQL's, procedimentos e sintaxe.
        Connection con = null;
        try 
        {
            //fazendo a chamada para carregar o drive do MySql
            Class.forName("com.mysql.jdbc.Driver");
//            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            String url = ("jdbc:mysql://127.0.0.1/poo");
            //estabelecendo conexão com o caminho, usuário e senha
            con = DriverManager.getConnection(url, "poo", "");
        } 
        catch (ClassNotFoundException ex) 
        {
            Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (SQLException ex) 
        {
            Logger.getLogger(FabricaConexao.class.getName()).log(Level.SEVERE, null, ex);
        }
        return con;
    }
    
    
}

// dominio

package dominio;

/**
 * Classe Aluno
 Autora Profª Ligia
 09/11/2016
 Código didático disponibilizado pela professora - IFTM/campus Patrocínio   
 */
public class Aluno 
{
    private String nome;
    private String dataNascimento;
    private String curso;
    private String ra;

    public Aluno(){ }

    public Aluno(String nome, String dataNascimento, String curso, String ra) 
    {
        this.nome = nome;
        this.dataNascimento = dataNascimento;
        this.curso = curso;
        this.ra = ra;
    }
    

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setDataNascimento(String dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }

    public void setRa(String ra) {
        this.ra = ra;
    }
    
    public String getNome() 
    {
        return nome;
    }

    public String getDataNascimento() 
    {
        return dataNascimento;
    }

    public String getCurso() 
    {
        return curso;
    }

    public String getRa() 
    {
        return ra;
    }

    @Override
    public String toString() 
    {
        return "nome =" + nome + ", "
                + "dataNascimento =" + dataNascimento + ", curso =" + 
                curso + ", ra =" + ra + '}';
    }
    
}
// visao

package visao;

import java.util.Scanner;
import DAO.DAOAluno;
import dominio.Aluno;

/**
 * Classe CadastrarAluno
 Autora Profª Ligia
 09/11/2016
 Código didático disponibilizado pela professora - IFTM/campus Patrocínio   
 */
public class CadastrarAluno 
{
    
    
    public void telaCadastro() 
    {
        Scanner ler = new Scanner(System.in);
        
        System.out.printf("Informe o nome do aluno:");
        String nomeAluno = ler.nextLine();
        
        System.out.printf("Informe a data de nascimento do aluno:");
        String dataNascimentoAluno = ler.nextLine();
        
        System.out.printf("Informe o curso do aluno:");
        String cursoAluno = ler.nextLine();
        
        System.out.printf("Informe o RA do aluno:");
        String raAluno = ler.nextLine();
        
        Aluno mAluno = new Aluno();
        
        mAluno.setNome(nomeAluno);
        mAluno.setDataNascimento(dataNascimentoAluno);
        mAluno.setCurso(cursoAluno);
        mAluno.setRa(raAluno);
        
        System.out.println(validacaoCadastro(mAluno));
    }
    
    private String validacaoCadastro(Aluno aluno)
    {
        DAOAluno salvarDados = new DAOAluno();
        if(aluno.getNome().equals("") || aluno.getRa().equals(""))
        {
            return "Nome do aluno e/ou RA em branco. Preencha todos os campos.";
        }
        else if(salvarDados.insereAluno(aluno))
        {
            return "Dados salvos com sucesso!";
        }
        else
        {
            return "Erro ao inserir aluno! Cadastre novamente.";
        }
    }
}
package visao;

import java.util.Scanner;

/**
 * Classe TelaPrincipal
 * Autora Profª Ligia
 * 25/11/2016
 * Código didático disponibilizado pela professora - IFTM/campus Patrocínio   
 */
public class TelaPrincipal 
{
    //classe que implementa as operações de 
        //entrada de dados pelo teclado no console
        //lendo int - ler.nextInt();
        //lendo float - ler.nextFloat(); 
        //lendo double - ler.nextDouble();
        //lendo uma String, usado na leitura de palavras simples que não 
            //usam o caractere de espaço (ou barra de espaço) - ler.next();
        //lendo uma String, usado na leitura de palavras compostas - ler.nextLine();

     public static void main(String[] args) 
    {
        Scanner ler = new Scanner(System.in);
        String opcao = "";
        do
        {
            System.out.println("************************************************************");
            System.out.println("Selecione uma das opções abaixo: ");
            System.out.println("1 - para inserir um aluno no sistema.");
            System.out.println("2 - para visualizar todos os alunos cadastrados no sistema.");
            System.out.println("3 - para sair do sistema.");
            System.out.println("************************************************************");
            System.out.print("Resposta: ");
            opcao = ler.nextLine();
            eventoRedirecionamento(opcao);
        }while(!opcao.equals("3"));
    }
     
    private static void eventoRedirecionamento(String opcao)
    {
        if(opcao.equals("1"))
        {
            new CadastrarAluno().telaCadastro();
        }
        else if (opcao.equals("2"))
        {
            new VisualizarAluno().visualizarTodosAlunos();
        }
    }

}
package visao;

import java.util.ArrayList;
import DAO.DAOAluno;
import dominio.Aluno;

/**
 * Classe VisualizarAluno
 * Autora Profª Ligia
 * 25/11/2016
 * Código didático disponibilizado pela professora - IFTM/campus Patrocínio   
 */
public class VisualizarAluno 
{
    public void visualizarTodosAlunos()
    {
        DAOAluno visualizarDados = new DAOAluno();
       
        ArrayList<Aluno> todosAluno = new ArrayList();
        todosAluno = visualizarDados.selecionarTodosRegistros();
        
        System.out.println("****************************************************");
        System.out.println("Visualizando todos os alunos:");
        
        for(Aluno aluno : todosAluno)
        {
            System.out.println("Nome: "+aluno.getNome());
            System.out.println("Data Nascimento: "+aluno.getDataNascimento());
            System.out.println("Curso: "+aluno.getCurso());
            System.out.println("RA: "+aluno.getRa());
            System.out.println("");
        }
    }

}

 

adicionado 1 minuto depois

@Leonardo0308 Bom dia ! Eu postei o código completo, se puder olhar eu agradeço.

Postado
31 minutos atrás, Nino2019 disse:

con = DriverManager.getConnection(url, "poo", "");

 

Então você vai substituir essa linha para ter o usuário e senha corretos.

 

con = DriverManager.getConnection(url, "root", "vertrigo");

 

  • Obrigado 1
  • 4 semanas depois...
Postado

@Nino2019 Olá. Desculpa me intrometer. Vendo o seu projeto a questão que pode dar erro é a forma de como você está fazendo a leitura dos dados inseridos pelo usuário, com a classe Scanner. Essa classe não é recomendada para isso, e o que pode ocorrer é o problema de "sujeira no buffer".

 

Recomendo o uso de uma classe como essa:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Console {
    public static String readString() {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            return reader.readLine();
        } catch (IOException e) {
            throw new RuntimeException("Erro ao ler o dado do teclado");
        }
    }

    public static char readChar() {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            return reader.readLine().charAt(0);
        } catch (IOException e) {
            throw new RuntimeException("Erro ao ler o dado do teclado");
        }
    }

    public static int readInt() {
        String str = readString();

        try {
            return Integer.parseInt(str);
        } catch (NumberFormatException e) {
            throw new RuntimeException(str + " nao e um int valido");
        }
    }
}

Com isso você evita qualquer problema na leitura dos dados

Aplicando em seu projeto ficaria assim:

System.out.printf("Informe o nome do aluno:");
String nomeAluno = Console.readString();

System.out.printf("Informe a data de nascimento do aluno:");
String dataNascimentoAluno = Console.readString();

System.out.printf("Informe o curso do aluno:");
String cursoAluno = Console.readString();

System.out.printf("Informe o RA do aluno:");
String raAluno = Console.readString();

Aluno mAluno = new Aluno();

Recomendo fazer uso da classe acima toda vez que fizer leitura de dados com o teclado em algum projeto

É só uma dica para que algum eventual problema não venha a ocorrer nesse ponto que falei :)

 

Veja mais aqui sobre sujeira no buffer (stdin) (Vale para o Java também!)

https://www.youtube.com/watch?v=ixk5RIqABjI

Obs: Só a maneira de resolver o problema em C que é dada no vídeo também não é recomendada

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!