Ir ao conteúdo
  • Cadastre-se

Java Erro ao executar o DAO , o que é ?


Nino2019

Posts recomendados

Informe a categoria:
bolas
Informe o fornecedor:
rede
Informe a faixa de valor do item:
23
nov 28, 2019 10:58:29 AM DAO.FabricaConexao conexao
GRAVE: null
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at DAO.FabricaConexao.conexao(FabricaConexao.java:31)
	at DAO.DAOItens.conectar(DAOItens.java:19)
	at DAO.DAOItens.insereItens(DAOItens.java:32)
	at visao.SalvarItem.validacaoSalvarItem(SalvarItem.java:44)
	at visao.SalvarItem.telaSalvarItem(SalvarItem.java:34)
	at visao.TelaPrincipal.eventoRedirecionamento(TelaPrincipal.java:25)
	at visao.TelaPrincipal.main(TelaPrincipal.java:20)

Exception in thread "main" java.lang.NullPointerException
	at DAO.DAOItens.fechar(DAOItens.java:24)
	at DAO.DAOItens.insereItens(DAOItens.java:50)
	at visao.SalvarItem.validacaoSalvarItem(SalvarItem.java:44)
	at visao.SalvarItem.telaSalvarItem(SalvarItem.java:34)
	at visao.TelaPrincipal.eventoRedirecionamento(TelaPrincipal.java:25)
	at visao.TelaPrincipal.main(TelaPrincipal.java:20)
C:\Users\Nivaldo\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 38 segundos)

 

Link para o comentário
Compartilhar em outros sites

@Leonardo0308

package dominio;

public class Itens {

    private String item;
    private String marca;
    private String categoria;
    private String fornecedor;
    private String faixa_valor;

    public Itens()
    {
    }

    public Itens(String item, String marca, String categoria, String fornecedor, String faixa_valor) {
        this.item = item;
        this.marca = marca;
        this.categoria = categoria;
        this.fornecedor = fornecedor;
        this.faixa_valor = faixa_valor;
    }

    public String getItem() {
        return item;
    }

    public void setItem(String item) {
        this.item = item;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(String fornecedor) {
        this.fornecedor = fornecedor;
    }

    public String getFaixa_valor() {
        return faixa_valor;
    }

    public void setFaixa_valor(String faixa_valor) {
        this.faixa_valor = faixa_valor;
    }

    @Override
    public String toString() {
        return  "item=" + item + ", marca=" + marca + ", categoria=" + categoria + ", "
                + "fornecedor=" + fornecedor + ", faixa_valor=" + faixa_valor + '}';
    }



 

}


package DAO;

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

public class DAOItens {
    private Connection con;
     
    private PreparedStatement comando;
    
    private final FabricaConexao fConexao = 
            FabricaConexao.getInstancia();
    
    private void conectar(){
        con = fConexao.conexao();
    }

    private void fechar(){
        try{
            comando.close();
            con.close();
        }catch(SQLException e){
            System.err.println("Erro ao fechar conexão\n"+e.getMessage());
        }
    }
    
    public boolean insereItens(Itens itens){
        conectar();
        String sql = "INSERT INTO Itens(item, marca, categoria, fornecedor, faixa_valor) VALUES(?,?,?,?,?)";
        
        try{
            comando = con.prepareStatement(sql);
            comando.setString(1, itens.getItem());
            comando.setString(2, itens.getMarca());
            comando.setString(3, itens.getCategoria());
            comando.setString(4, itens.getFornecedor());
            comando.setString(5, itens.getFaixa_valor());
            
            comando.execute();
            
            return true;
        }catch(SQLException e){
            System.err.println("Erro ao inserir Item\n"+e.getMessage());
        }
        finally{
            fechar();
        }
        return false;
    }
    public  ArrayList<Itens> selecionarTodosRegistros()
    {
        conectar();
     
        ResultSet rs;
        String sql = "SELECT * FROM ITENS";

        ArrayList<Itens> listaItens = new ArrayList();
        try
        {
            comando = con.prepareStatement(sql);
            rs = comando.executeQuery();
            while(rs.next())
            {
                Itens itens = new Itens();
                itens.setItem(rs.getString("item"));
                itens.setMarca(rs.getString("marca"));
                itens.setCategoria(rs.getString("categoria"));
                itens.setFornecedor(rs.getString("fornedor"));
                itens.setFaixa_valor(rs.getString("faixa_valor"));
                
                listaItens.add(itens);
            }
            return listaItens;
        }
        catch(SQLException e)
        {
            System.err.println("Erro visualizar Itens\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/PROVAPOO");
            //estabelecendo conexão com o caminho, usuário e senha
            con = DriverManager.getConnection(url, "root", "vertrigo");
        } 
        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;
    }
    
    
}

package visao;

import java.util.Scanner;
import DAO.DAOItens;
import dominio.Itens;

public class SalvarItem {
    public void telaSalvarItem(){
        Scanner ler = new Scanner(System.in);
        
        System.out.println("Informe o item a ser cadastrado:");
        String item = ler.nextLine();
        
        System.out.println("Informe a marca:");
        String marca = ler.nextLine();
        
        System.out.println("Informe a categoria:");
        String categoria = ler.nextLine();
        
        System.out.println("Informe o fornecedor:");
        String fornecedor = ler.nextLine();
        
        System.out.println("Informe a faixa de valor do item:");
        String faixa_valor = ler.nextLine();
        
        Itens mItens = new Itens();
        
        mItens.setItem(item);
        mItens.setMarca(marca);
        mItens.setCategoria(categoria);
        mItens.setFornecedor(fornecedor);
        mItens.setFaixa_valor(faixa_valor);
        
        System.out.println(validacaoSalvarItem(mItens));
    }
    
    private String validacaoSalvarItem(Itens itens){
        DAOItens salvarDados = new DAOItens();
        if(!itens.getItem().equals("Bolinhas") && (!itens.getItem().equals("Luzes")) && (!itens.getItem().equals("Festão"))){
            salvarDados.insereItens(itens);
            return "Dados inseridos com Sucesso";
        }else{
            itens.setItem("Item");
            salvarDados.insereItens(itens);
            return "Dados inseridos com Sucesso";
        }
    }
}

 package visao;

import DAO.DAOItens;
import dominio.Itens;
import java.util.ArrayList;

public class VisualizarItem {
    public void visualizarTodosItens(){
        DAOItens visualizarDados = new DAOItens();
        
        ArrayList<Itens> todosItens = new ArrayList();
        todosItens = visualizarDados.selecionarTodosRegistros();
        
        System.out.println("****************************************************");
        System.out.println("Visualizando todos os itens:");
        
        for(Itens itens : todosItens){
            System.out.println("Item: " + itens.getItem());
            System.out.println("Marca: " + itens.getMarca());
            System.out.println("Categoria: " + itens.getCategoria());
            System.out.println("Fornecedor: " + itens.getFornecedor());
            System.out.println("Faixa de valor: " + itens.getFaixa_valor());
            System.out.println("");
        }
    }
}

      
      package visao;

import java.util.Scanner;

public class TelaPrincipal {

    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: ");
            System.out.println("1 - Salvar Item");
            System.out.println("2 - Visualizar Item");
            System.out.println("3 - 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 SalvarItem().telaSalvarItem();
            }else if(opcao.equals("2")){
                new VisualizarItem().visualizarTodosItens();
            }else{
                System.out.println("Escolha uma opção válida");
            }
        }
}

 

Link para o comentário
Compartilhar em outros sites

@Leonardo0308 não , está fora, se não for incomodo tem como você testar ai , eu te mando as pastas todas por aqui ?

adicionado 3 minutos depois
3 minutos atrás, Nino2019 disse:

@Leonardo0308 não , está fora, se não for incomodo tem como você testar ai , eu te mando as pastas todas por aqui ?

 

PROVAPOO.rar

adicionado 3 minutos depois
3 minutos atrás, Nino2019 disse:

@Leonardo0308 não , está fora, se não for incomodo tem como você testar ai , eu te mando as pastas todas por aqui ?

 

Link para o comentário
Compartilhar em outros sites

Não tenho como.

 

Mas volto a dizer o problema deve está no driver, ou não está ai nas suas bibliotecas ou está em algum outro local.

 

33 minutos atrás, Nino2019 disse:

//fazendo a chamada para carregar o drive do MySql 
Class.forName("com.mysql.jdbc.Driver");

 

 

No pior dos casos tenta comentar essa parte e rodar sem ela. Ai depois você coloca ela novamente.

 

A menos que você esteja com um java antigo, ai tem que deixar ela ai mesmo.

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Nino2019 Você sabe debugar o projeto? É bem simples, e vai te auxiliar a encontrar a falha.

 

Você está recebendo um NullPointerException, que é uma das exceções mais comuns no Java. Ela significa que você está tentando acessar um método ou atributo de um objeto nulo, e pelo seu log me parece que é um dos objetos da conexão. Debugue o seu projeto e vai acompanhando passo a passo o que está acontecendo, para ver o porquê do  objeto estar nulo quando seu código executa o seguinte trecho: DAO.DAOItens.fechar(DAOItens.java:24).

 

No mais, tem muito tempo que eu não executo PreparedStatement então eu posso estar falando besteira, mas: a contagem dos parâmetros não começa no 0 ou invés do 1? Se for, arrume isso.

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

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!