Ir ao conteúdo

Posts recomendados

Postado
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)

 

Postado

@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");
            }
        }
}

 

Postado

@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 ?

 

Postado

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
Postado

@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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!