[Resolvido] Não está inserindo no banco

10 respostas
Q

Tenho as classe DAO, um programa que inseri certinho no banco sem interface, mas a minha classe de interface não está conseguindo inserir aperto Incluir faz certinho mas não inseri no banco

package Interface;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

import org.postgresql.core.Parser;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Text;

import Conexao_banco.ConnectionFactory;
import DAO.CadastraClienteDAO;
import Principal.Cliente;

import sun.font.TextLabel;
import sun.java2d.Disposer;

class classetela {
	
	static Cliente cliente = new Cliente();
	static CadastraClienteDAO cDao = new CadastraClienteDAO();
	private static Connection con;
	
	public static void main (String[]args) {
		
		
		final JFrame cadcli = new JFrame("CadCli");
		cadcli.setBounds(20,20,600,450);
		cadcli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
						
		JLabel codigo = new JLabel("Código: ");
		codigo.setBounds(35,50,80,25);
		codigo.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_codigo = new JTextField (50) ;
		text_codigo.setBounds(105,50,40,25);	
		
		
		JLabel nome = new JLabel("Nome: ");
		nome.setBounds(45,80,70,25);
		nome.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_nome = new JTextField (40) ;
		text_nome.setBounds(105,80,465,25);
		
		JLabel dt_nasci = new JLabel("Data de Nascimento: ");
		dt_nasci.setBounds(150,50,190,25);
		dt_nasci.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_dtnas = new JTextField (40) ;
		text_dtnas.setBounds(330,50,150,25);
		
		JLabel cpf = new JLabel("CPF: ");
		cpf.setBounds(57,110,90,25);
		cpf.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_cpf = new JTextField (40) ;
		text_cpf.setBounds(105,110,230,25);
				
		JLabel doc_id = new JLabel("ID: ");
		doc_id.setBounds(350,110,70,25);
		doc_id.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_doc_id = new JTextField (40) ;
		text_doc_id.setBounds(380,110,190,25);
		
		JLabel rua = new JLabel("Rua: ");
		rua.setBounds(60,140,70,25);
		rua.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_rua = new JTextField (40) ;
		text_rua.setBounds(105,140,465,25);
		
		JLabel bairro = new JLabel("Bairro: ");
		bairro.setBounds(40,170,70,25);
		bairro.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_bairro = new JTextField (40) ;
		text_bairro.setBounds(105,170,200,25);
				
		JLabel cidade = new JLabel("Cidade: ");
		cidade.setBounds(312,170,90,25);
		cidade.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_cidade = new JTextField (40) ;
		text_cidade.setBounds(380,170,190,25);
		
		JLabel telfixo = new JLabel("Tel. Fixo: ");
		telfixo.setBounds(20,200,90,25);
		telfixo.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_telfixo = new JTextField (40) ;
		text_telfixo.setBounds(105,200,190,25);
				
		JLabel telcel = new JLabel("Tel. Cel.: ");
		telcel.setBounds(300,200,90,25);
		telcel.setFont(new Font("Times new Roman",Font.BOLD,20));
		final JTextField text_telcel = new JTextField (40) ;
		text_telcel.setBounds(380,200,190,25);
		
		JButton incluir = new JButton("Incluir");
		incluir.setBounds(240,260,80,30);
		incluir.addActionListener(new ActionListener() {
			
			
			public void actionPerformed(ActionEvent arg0) {
				
				try {
					con = ConnectionFactory.createConnection();
					System.out.println("conexão ActionPerformedCadCli realizada com sucesso");
					PreparedStatement ps = con.prepareStatement("insert into pessoa (cod_cliente,nome,data_nascimento,nr_cpf,doc_id," +
							"														nm_rua,bairro,nm_cid,telefone_cas,telefone_cel) " +
							"														values (text_codigo,text_nome,text_dtnas,text_cpf,text_doc_id," +
							"														text_rua,text_bairro,text_cidade,text_telfix,text_telcel)");
				} catch (SQLException e) {
					e.printStackTrace();
				}
				
				try {
					
					final int valorcodigo = Integer.valueOf(text_codigo.getText());
					final String valornome = String.valueOf(text_nome.getText());
					final String valordata = String.valueOf(text_dtnas.getText());
					final String valorcpf = String.valueOf(text_cpf.getText());
					final String valordocid = String.valueOf(text_doc_id.getText());
					final String valorrua = String.valueOf(text_rua.getText());
					final String valorbairro = String.valueOf(text_bairro.getText());
					final String valorcidade = String.valueOf(text_cidade.getText());
					final int valortelfixo = Integer.valueOf(text_telfixo.getText());
					final int valortelcel = Integer.valueOf(text_telcel.getText());
					
					con = ConnectionFactory.createConnection();
					String sql = "insert into pessoa (cod_cliente,nome,data_nascimento,nr_cpf,doc_id," +
							"						 nm_rua,bairro,nm_cid,telefone_cas,telefone_cel) " +
							"						 values (?,?,?,?,?,?,?,?,?,?)";
					
					PreparedStatement ps = con.prepareStatement(sql);
					
					ps.setInt(1, valorcodigo);
					ps.setString(2, valornome);
					ps.setString(3, valordata);
					ps.setString(4, valorcpf);
					ps.setString(5, valordocid);
					ps.setString(6, valorrua);
					ps.setString(7, valorbairro);
					ps.setString(8, valorcidade);
					ps.setInt(9, valortelfixo);
					ps.setInt(10, valortelcel);
				
				} catch (SQLException  e) {
					e.printStackTrace();
				}
				
				
			}
				
				
				
			}
		);
		
	
		JButton fechar = new JButton("Fechar");
		fechar.setBounds(340,260,80,30);
		fechar.addActionListener(new ActionListener() {				
			public void actionPerformed(ActionEvent arg0) {
				cadcli.dispose();
				
			}
		});
		
			
		
		cadcli.setLayout(null);
		cadcli.add(codigo);
		cadcli.add(text_codigo);
		cadcli.add(nome);
		cadcli.add(text_nome);
		cadcli.add(dt_nasci);
		cadcli.add(text_dtnas);
		cadcli.add(cpf);
		cadcli.add(text_cpf);
		cadcli.add(doc_id);
		cadcli.add(text_doc_id);
		cadcli.add(rua);
		cadcli.add(text_rua);
		cadcli.add(bairro);
		cadcli.add(text_bairro);
		cadcli.add(cidade);
		cadcli.add(text_cidade);
		cadcli.add(telfixo);
		cadcli.add(text_telfixo);
		cadcli.add(telcel);
		cadcli.add(text_telcel);
		cadcli.add(incluir);
		cadcli.add(fechar);
		cadcli.setVisible(true);
	
	}

}

10 Respostas

Marcelo_de_Andrade

Qual o erro que apresenta?

charleston10

Confundi agora, xD … imaginei q era implementação de uma interface…

charleston10

Responda uma coisa,
Por que voce esta usando final nessas declarações de variáveis??

erico_kl

Cara, não querendo ser chato… Tente fazer isso aí orientado à objetos primeiro

erico_kl

E outra, cadê o ps.executeUpdate()?

Margel_Douglas

Como o erico_kl disse, não esta gravando pq parece q vc não chama o “executeUpdate()”…

Outra coisa, pra que serve aquela “CadastraClienteDAO” !!! Vc não usa essa classe pra nada pelo q vi…

B

Falta dar um ps.executeUpdate() e um con.commit()

Q

vou testar com o ps.executeupdate.

Q

Valeu, faltou mesmo o ps.executeUpdate();
No caso a inserção vou colocar na DAO depois.

erico_kl

Cara, confesso que vendo o seu código eu não entendi o que você quer fazer…

  1. Você tem 2 inserts por quê? O que você está tentando fazer no primeiro?
  2. Você tem uma DAO que não utiliza… O correto seria ELA tratar esses inserts, e não a sua view… A tua DAO está aí absolutamente pra NADA
  3. Nenhum PreparedStatement ou Connection está sendo fechado
  4. A sua view deve gravar OBJETOS, e não atributos
  5. A nomenclatura da sua classe não segue o default
  6. Você tem um objeto Cliente que também não usa, e o pior, ele não está protegido e está estático. Por quê?
  7. Os modificadores final que você usou não são necessários. Ou se você acha que são, porque alguns componentes da sua view estão final e outros não?
  8. Você está fazendo todo o processo no método main, porquê não cria um construtor e métodos que te auxiliam e deixam o código mais legível? Isso faria com que você pudesse tirar o static das suas variáveis, resolvendo o ítem 6. Lembre-se que as variáveis estáticas são carregadas sempre no início da sua aplicação, então o seu uso deve ser controlado.
Criado 23 de novembro de 2012
Ultima resposta 23 de nov. de 2012
Respostas 10
Participantes 6