Estou com muita dúvida com inserir dados no banco com swing

2 respostas
P

estou com uma dúvida com swing tenho que fazer uma janela contendo nome,endereço,bairro e dois botoes inserir e finalizar tenho que fazer com que estes dados chamem o banco de dados, so que eu não estou conseguindo inserir estes dados.
seguem as classes.

a primeira classe (bim)

package conexao;

public class Cliente {

	private int id;
	private String nome;
	private String endereco;
	private String bairro;
	
	
	public Cliente(String nome, String endereco, String bairro) {

		this.nome = nome;
		this.endereco = endereco;
		this.bairro = bairro;
	}

	

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

}
a segunda classe contendo a conexão e o insert 
package conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Conexao {

	public Connection conectar() {
		Connection con = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521:XE", "system",
					"system");
			System.out.println("conectado");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return con;
	}

	public void inserir(Cliente cliente) {
		// chama o metodo que realiza a conexão e salva em um objeto
		Connection con = conectar();
		// objeto que relaciona o sql com a conexão
		PreparedStatement stm = null;
		// String com o comando sql
		String sql = "insert into tb_cliente(nm_nome,en_endereco,nm_bairro)values(?,?,?)";
		try {
			stm = con.prepareStatement(sql);
			// setoos parametros para substituir as interrogações
			stm.setString(1, cliente.getNome());
			stm.setString(2, cliente.getEndereco());
			stm.setString(3, cliente.getBairro());

			// executa op comando no banco
			stm.executeUpdate();

			// fexa a conexão
			con.close();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static void main(String[] args) {

		Cliente cliente = new Cliente(null, null, null);
		cliente.setNome("Paulo");
		cliente.setBairro("Samambaia");
		cliente.setEndereco("Qr 606");

		// chama o metodo que insere na base
		new Conexao().inserir(cliente);
	}
}
e esta e a classe do swing 

package conexao;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Janela extends JFrame {
	JTextField nm_nome, en_endereco, nm_bairro;
	JButton btAdcionar, btFinalizar;
	Conexao conexao = new Conexao();
	public Object cliente;

	public Janela() {
		setTitle("Cadastro");
		setLayout(new FlowLayout());

		// labels
		JLabel lbNome = new JLabel("Nome ");
		JLabel lbEndereco = new JLabel("Endereço ");
		JLabel lbBairro = new JLabel("Bairro ");

		// caixas de texto
		nm_nome = new JTextField(10);
		en_endereco = new JTextField(10);
		nm_bairro = new JTextField(10);

		// botões
		btAdcionar = new JButton("Adcionar");
		btFinalizar = new JButton("Finalizar");

		add(lbNome);
		add(nm_nome);
		add(lbEndereco);
		add(en_endereco);
		add(lbBairro);
		add(nm_bairro);
		add(btAdcionar);
		add(btFinalizar);

		setSize(200, 200);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		EventoAdd eventoAdd = new EventoAdd();
		btAdcionar.addActionListener(eventoAdd);

		EventoFinalizar eventofinalizar = new EventoFinalizar();
		btFinalizar.addActionListener(eventofinalizar);

	}

	private class EventoAdd implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			String nome = nm_nome.getText();
			String endereco = en_endereco.getText();
			String bairro = nm_bairro.getText();

			Cliente cliente = new Cliente(nome, endereco, bairro);
		cliente.getBairro();
		cliente.getEndereco();
		cliente.getNome();

			nm_nome.setText("");
			en_endereco.setText("");
			nm_bairro.setText("");

		}

	}

	
	//não estou conseguindo botar este evento
	private class EventoFinalizar implements ActionListener {

		

		@Override
		public void actionPerformed(ActionEvent e) {
		
		}

	}
	public static void main(String[] args) {
		new Janela();
	}

}

me ajudem por favor

2 Respostas

wagne23

Eu costumo trabalhar da seguinte maneira:

public void actionPerformed(ActionEvent e) {  
             String nome = nm_nome.getText();  
             String endereco = en_endereco.getText();  
             String bairro = nm_bairro.getText();  
   
             Cliente cliente = new Cliente(nome, endereco, bairro);  
             Conexao c = new Conexao();
             try{
                  c.conectar();
                  c.inserir(cliente);
             }catch(Exception e){
                 //trata a exception
             }
             nm_nome.setText("");  
             en_endereco.setText("");  
             nm_bairro.setText("");  
         }
P
wagne23:
Eu costumo trabalhar da seguinte maneira:
public void actionPerformed(ActionEvent e) {  
             String nome = nm_nome.getText();  
             String endereco = en_endereco.getText();  
             String bairro = nm_bairro.getText();  
   
             Cliente cliente = new Cliente(nome, endereco, bairro);  
             Conexao c = new Conexao();
             try{
                  c.conectar();
                  c.inserir(cliente);
             }catch(Exception e){
                 //trata a exception
             }
             nm_nome.setText("");  
             en_endereco.setText("");  
             nm_bairro.setText("");  
         }

Cara muito abrigado mesmo.

Criado 19 de setembro de 2009
Ultima resposta 19 de set. de 2009
Respostas 2
Participantes 2