Problema na hora do insert de um TextField no Banco - RESOLVIDO

3 respostas
R

Bom dia galera, estou criando um programa para cadastrar cliente, com isso na hora do INSERT o programa da varios ERRO, já tentei de todas as formas arrumar, mas não achei nenhuma solução :(

Segue meu codigo, Gostaria de sua ajuda para solucionar meu problema, obrigado desde já.

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;

import javax.swing.JOptionPane;

public class Cadastro_Cliente_Teste extends JFrame implements ActionListener {
	
	private static final long serialVersionUID = 1L;
	private JPanel panel, panelP, panelCadastro, panelButton, panelLabel;
	private JLabel lbNome;
	private JTextField tfNome;
	private JButton btSalvar, btLimpar, btSair;
	private String url = "jdbc:postgresql://localhost:5432/postgres";
	private String name = "postgres";
	private String psw = "password";
	private Connection con;
	private Statement st;
	
	public Cadastro_Cliente_Teste (){
		
		
			super ("Cadastro de Cliente");
			setDefaultCloseOperation(EXIT_ON_CLOSE);

			try
			{
				// Registrando o driver
				Class.forName("org.postgresql.Driver");
				// Fazendo uma conexão teste
				con = DriverManager.getConnection(url, name, psw);
				System.out.println("Conexão Realizada com suzesso");
			}
			catch (Exception e)
			{
				System.out.println(e.getLocalizedMessage());
				e.printStackTrace();
			}
		
		//Criando Panel Cadastro
		panelCadastro = new JPanel();
		panelCadastro.setLayout( new FlowLayout(FlowLayout.LEFT));
	    panelCadastro.setPreferredSize(new Dimension(500,200));
	    panelCadastro.setOpaque(false);
		panelCadastro.setBorder(BorderFactory.createTitledBorder("Dados do Cliente"));
		
		//Criando Label
		lbNome = new JLabel ("Nome:");
		tfNome = new JTextField(20);
		panelLabel = new JPanel();
		panelLabel.setLayout( new GridLayout(1,1) );
		panelLabel.add(lbNome);
		panelLabel.add(tfNome);
		
		panelCadastro.add(panelLabel);
		
		//Criado Panel Button  
		btSalvar = new JButton("Salvar");
	    btSalvar.addActionListener(this);
	    btSalvar.setOpaque(false);
		btLimpar = new JButton("Limpar");
	    btLimpar.addActionListener(this);
	    btLimpar.setOpaque(false);
		btSair = new JButton("Sair");
		btSair.addActionListener(this);
		btSair.setOpaque(false);
		panelButton = new JPanel();
		panelButton.setLayout( new FlowLayout( FlowLayout.CENTER ) );
		panelButton.add( btSalvar );
		panelButton.add( btLimpar );
		panelButton.add( btSair );
		
		//Criando Panel P
		panelP = new JPanel();
		panelP.setLayout( new BorderLayout() );
		panelP.add( panelCadastro, BorderLayout.CENTER );
		panelP.add( panelButton, BorderLayout.SOUTH );
		
		// Criando Painel Principal
		panel = new JPanel();
		panel.setLayout( new FlowLayout( FlowLayout.LEFT, 5, 5) );
		panel.add( panelP );
		
		add(panel);
		
		//TAMANHO DA JANELA	
	    setSize(520,400);
	    //ABRE O PROGRAMA NO MEIO DA TELA
	    setLocationRelativeTo(null);
	    //BLOQUEANDO REDIMENSIONAMENTO DA JANELA
	    setResizable(false);  
		
	
	}
	
	//Açoes dos botões
    public void actionPerformed(ActionEvent event)
	{	
		Object evento = event.getSource();
		
		//CADASTRAR
		if(evento == btSalvar)
		{
        	VerificaECadastra();
        }
        
		//LIMPAR CAMPOS
		if(evento == btLimpar)
		{
        	Limpar();
        }	
		//SAIR
		if(evento == btSair)
		{
			Sair();
		}
	}
	
    //Sair do programa
	private void Sair() {
		System.exit(0);		
	}

	//Limpar campos
	private void Limpar() {
		tfNome.setText("");
	}

	//VERIFICA SE OS CAMPOS ESTÃO EM BRANCO, CASO ESTIVER ALGUM EM BRANCO INFORMA ERRO, SE NÃO EXECUTA O MÉTODO CADASTRO
    public void VerificaECadastra()
    {
    	if( (tfNome.getText().equals("")) )
    	{
    		JOptionPane.showMessageDialog(this,"Todos os campos são obrigatórios! Por favor tente novamente.","Erro", JOptionPane.ERROR_MESSAGE);
    	}
    	else
    	{
    		Cadastrar();
    	}
    }
	
	//MÉTODO CADASTRO, CONECTA COM O BANCO E INSERE OS DADOS DOS CAMPOS NO BANCO DE DADOS
	public void Cadastrar()
	{		
		//Variavel em String recebe o comando SQL para inserir na tabela clientes
		String sentencaSQL = "INSERT INTO cliente (nome) VALUES ('"+tfNome.getText()+"')" ;
		
		//Tentando executar o comando para inserir na tabela
		try
		{
			st.executeUpdate(sentencaSQL);
			JOptionPane.showMessageDialog(this,"Dados inseridos com sucesso!","Mensagem", JOptionPane.WARNING_MESSAGE);
		}

		// exceções de SQL
		catch (SQLException eSQL)
		{
			JOptionPane.showMessageDialog(this,"Não foi possível inserir os dados!\n" +"Mensagem: " + eSQL.getMessage(),"Erro", JOptionPane.ERROR_MESSAGE);
		}	
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Cadastro_Cliente_Teste exCadastro = new Cadastro_Cliente_Teste();
		exCadastro.setVisible( true );

	}

}

3 Respostas

L

um exemplo ve te ajuda

private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt)  {     

		d.setcd_Codigo(Integer.parseInt(txtCodigo.getText()));
		d.settxt_NomeSegurado(txtNomesegurado.getText());
		d.setdt_Nascimento(txtDataNascimento.getText());
		d.setcd_Sexo(cmbSexo.getSelectedItem().toString());
		d.setcd_CPF(txtCpf.getText());
		d.settxt_End(txtEndereco.getText());
		d.settxt_Bairro(txtBairro.getText());
		d.setcd_NumeroRes(Integer.parseInt(txtNumero.getText()));
		d.settxt_Complmento(txtComplemento.getText());
		d.setcd_Produto(cmbProduto.getSelectedItem().toString());  
		d.setval_Premio(Integer.parseInt(txtPremio.getText()));


		try {  

			con=DAO.getConn();
			System.out.println(con);

			String sql = "INSERT into tb_Cadastro(cd_Codigo, txt_NomeSegurado, dt_Nascimento, cd_Sexo, cd_CPF, txt_End, txt_Bairro, cd_NumeroRes, txt_Complmento, cd_Produto, val_Premio)" + " VALUES(%s, '%s', '%s', '%s', '%s', '%s', '%s', %s, '%s', '%s', %s)";

			sql = String.format(sql, d.getcd_Codigo(), 
					d.gettxt_NomeSegurado(),
					d.getdt_Nascimento(),
					d.getcd_Sexo(),
					d.getcd_CPF(),
					d.gettxt_End(),
					d.gettxt_Bairro(),
					d.getcd_NumeroRes(),
					d.gettxt_Complmento (),
					d.getcd_Produto(),
					d.getval_Premio());


			//System.out.println(sql);
			pstm = con.prepareStatement(sql);     
			pstm.executeUpdate(); 
			con.commit();

			Mensagem mensagem = new Mensagem(this, "Confirmação", "Confirmar gravação do cadastro ", Mensagem.MSG_BOTAO_SIM_NAO_CANCELA, Mensagem.MSG_ICONE_PERGUNTA);
			if (mensagem.getBotaoClicado() == Mensagem.MSG_CLICK_SIM ) 
			{
				new  Mensagem(this,"Aviso", "Salvo com sucesso", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_INFORMACAO);

			}

		}

		catch (SQLIntegrityConstraintViolationException e) {

			Mensagem mensagem = new Mensagem(this, "ERRO", " Produto Cadastrado ! ", Mensagem.MSG_BOTAO_OK, Mensagem.MSG_ICONE_ERRO);
			System.out.println("Erro !!!!");

		}
		catch(Exception e){
			System.out.println(e.toString());
		}        
		finally{

			try{
				pstm.close(); 
				//con.close();
			}catch(Exception e) {   
				e.printStackTrace();   
				return ;   
			}   
		}   

	}
R

lokit"s obrigado, mas fiquei meio confuso com esse exemplo hehehehe.

Esse codigo que você passo deve ser incluido aonde ? pois tentei incluir e deu mais erros.

Hehehe vlws

L

mas vc não copiou meu codigo e colou no seu é certeza que vai dar erro…

isso foi um exemplo só de inserção,caso te ajudasse a dar um visão geral!

Criado 16 de setembro de 2010
Ultima resposta 16 de set. de 2010
Respostas 3
Participantes 2