Java + MySQL = NullPointerExcept

0 respostas
V

Fala, pessoal. Estou criando uma agenda, e a tela que contém o código abaixo é da tela de cadastro. Quando eu peço para pegar os valores dos Text Field e incorporar ao banco, retorna a exceção de NullPointerExcept.

A tela no banco contém exatamente os mesmos nomes dos atributos da classe.

tabela do Banco

id tinyint(5) NO PRI auto_increment nome varchar(100) NO
telefone varchar(11) YES
email varchar(100) YES
rua varchar(100) YES
numero varchar(100) YES
cidade varchar(100) YES
bairro varchar(100) YES
estado varchar(100) YES

import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.PreparedStatement;

import java.util.ArrayList;
import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import java.sql.*;

public class TelaConsulta extends JFrame implements ActionListener {

//NA VERDADE ESTA NÃO É A TELA CONSULTA. É A ADICIONAR NOVO CONTATO

ArrayList  array = new ArrayList();

Contatos contato = new Contatos();

TelaAgenda telaprincipal = new TelaAgenda();

Connection conexao = null;

private JLabel lblId;

private JTextField txtId;

private JLabel lblNome;

private JTextField txtNome;

private JLabel lblTelefone;

private JTextField txtTelefone;

private JLabel lblEmail;

private JTextField txtEmail;

private JLabel lblRua;

private JTextField txtRua;

private JLabel lblNumero;

private JTextField txtNumero;

private JLabel lblBairro;

private JTextField txtBairro;

private JLabel lblCidade;

private JTextField txtCidade;

private JLabel lblEstado;

private JTextField txtEstado;

private JButton btnVoltar;

private JButton btnAdicionar;

public TelaConsulta() {
super (“CONTATOS”);

lblId = new JLabel ("ID: ");
txtId = new JTextField ("", 2);
lblNome = new JLabel ("		Nome: ");
lblTelefone = new JLabel ("		Telefone: ");
lblEmail = new JLabel ("		Email: ");
lblRua = new JLabel ("		Rua: ");
txtRua = new JTextField ("", 10);
lblNumero = new JLabel ("		Número da residência :", 10);
txtNumero = new JTextField ("", 10);
lblBairro = new JLabel ("		Bairro: ", 10);
txtBairro = new JTextField ("", 10);
lblCidade = new JLabel ("		Cidade: ", 10);
txtCidade = new JTextField ("", 10);
lblEstado = new JLabel ("		Estado : ", 10);
txtEstado = new JTextField ("", 10);
txtNome = new JTextField ("", 10);
txtTelefone = new JTextField ("", 10);	
txtEmail = new JTextField ("", 10);
btnVoltar = new JButton ("Voltar");
btnAdicionar = new JButton ("Adicionar");
Container tela = getContentPane();

tela.setLayout(new GridLayout(5,2));

tela.add(lblId);

tela.add(txtId);

tela.add(lblNome);

tela.add(txtNome);

tela.add(lblTelefone);

tela.add(txtTelefone);

tela.add(lblEmail);

tela.add(txtEmail);

tela.add(lblRua);

tela.add(txtRua);

tela.add(lblNumero);

tela.add(txtNumero);

tela.add(lblBairro);

tela.add(txtBairro);

tela.add(lblCidade);

tela.add(txtCidade);

tela.add(lblEstado);

tela.add(txtEstado);

tela.add(btnAdicionar);

tela.add(btnVoltar);
btnVoltar.addActionListener(this);
btnAdicionar.addActionListener(this);
setSize(780, 320);
setResizable(false);
		
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
		
   	}  public void actionPerformed(ActionEvent e) {
		if (e.getSource()== btnAdicionar) {
			
			adicionar();
			Connection conexao;
			
			contato = new Contatos();
			
			//PASSANDO OS ATRIBUTOS PARA A CLASSE CONTATOS
			contato.setNome(txtNome.getText());
			contato.setTelefone(txtTelefone.getText()); 
			contato.setEmail(txtEmail.getText()); 
			contato.setRua(txtRua.getText());
			contato.setNumero(txtNumero.getText()); 
			contato.setBairro(txtBairro.getText()); 
			contato.setCidade(txtCidade.getText()); 
			contato.setEstado(txtEstado.getText()); 
			
			//LIMPANDO TODOS OS CAMPOS
			txtNome.setText("");
			txtTelefone.setText("");
			txtEmail.setText("");
			txtRua.setText("");
			txtNumero.setText("");
			txtBairro.setText("");
			txtCidade.setText("");
			txtEstado.setText("");
			
			JOptionPane.showMessageDialog(null, "Contato " + " '"+ contato.getNome()+"'" +" Cadastrado com sucesso!");
			array.add(contato);
			
			}	else if (e.getSource() == btnVoltar) {
				 
					TelaConsulta.this.dispose();
					telaprincipal.setVisible(true);
					System.out.println("Os contatos adicionados foram: ");
					for (int n=0; n<array.size(); n++) {
						System.out.println(array.get(n));
						System.out.println("========================");
				}				
			}
		}
   	
  //MÉTODO PARA ADICIOANR
	
private void adicionar() {
	String sql = "insert into contatos (id, nome, telefone, email, rua, numero, cidade, bairro, estado) values (?,?,?,?,?,?,?,?,?)";			try {
		PreparedStatement pst = conexao.prepareStatement(sql);
		pst.setString(1,  txtId.getText());
		pst.setString(2, txtNome.getText());
		pst.setString(3, txtTelefone.getText());
		pst.setString(4, txtEmail.getText());
		pst.setString(5, txtRua.getText());
		pst.setString(6, txtNumero.getText());
		pst.setString(7, txtBairro.getText());
		pst.setString(8, txtCidade.getText());
		pst.setString(9, txtEstado.getText());
			//A linha abaixo atualiza a tabela contatos com as informações digitadas no formulário.
			pst.executeUpdate();				
		}
		catch (Exception e ) {
			 JOptionPane.showMessageDialog(null, e);
		}
	}
   }

public void actionPerformed(ActionEvent e) { if (e.getSource()== btnAdicionar) {

adicionar();
Criado 25 de novembro de 2018
Respostas 0
Participantes 1