Como adicionar dados de uma JComboBox em um banco de dados

1 resposta
R
galera tô fazendo um código, para cadastrar contatos, mas não consigo adicionar os dados de uma JComboBox no banco de dados mysql, o codigo ainda tah sendo desenvolvido... quem puder ajudar e explicar como se faz, agradeço mt... abraços a todos
public class Tela extends JFrame implements ActionListener, TableModelListener {
	
	private static final long serialVersionUID = 1L;
	private JButton btSalvar, btAlterar, btExcluir, btLimpar, btListar, btBuscar;
	private JTextField txNome, txRua, txNumero, txCidade,txComplemento, txTelefone, txTelefone1, txTelefone2, txDtNas, txEmail, txBuscar;
	private JPanel pnNorte, pnCentral, pnSul;
	private JLabel lbNome, lbRua, lbNumero, lbCidade, lbTelefone,lbTelefone1, lbTelefone2,
	lbDtNas, lbEmail, lbBuscar, lbBuscarNome, lbSexo, lbEstadoCivil, lbEstado, lbComplemento;
    private JComboBox<Object> sexo;
    private JComboBox<Object> estado;
    private JComboBox<Object> estadoCivil;
	private AgendaTableModel modelo;
	private JTable tabela;
	private List<Contato> contatoList = new ContatoController().listaContatos();
	private int registroAtual = 0;
	
	public Tela (){
		super("Agenda");
		setSize(840, 650);
		
		pnNorte = new JPanel();
		pnNorte.setLayout(null);
		pnNorte.setBounds(0,0, 820, 160);
		pnNorte.setBackground(Color.LIGHT_GRAY);
		
		pnSul = new JPanel();
		pnSul.setLayout(new BorderLayout());
		pnSul.setBounds(0, 400, 820, 300);
		pnSul.setBackground(Color.LIGHT_GRAY);
		
		pnCentral = new JPanel();
		pnCentral.setLayout(null);
		pnCentral.setBounds(0, 0,0, 0);
		pnCentral.setBackground(Color.LIGHT_GRAY);
		
		lbNome = new JLabel(" Nome ");
		lbNome.setBounds(10, 0, 130, 30);
		lbEstadoCivil = new JLabel(" Estado Civil ");
		lbEstadoCivil.setBounds(700, 0, 130, 30);		
		lbSexo = new JLabel(" Sexo ");
		lbSexo.setBounds(10, 100 , 130, 30);
		lbDtNas = new JLabel(" Data Nascimento ");
		lbDtNas.setBounds(600, 50, 130, 30);
		lbEmail = new JLabel(" Email ");
		lbEmail.setBounds(10, 50, 130, 30);
		lbRua = new JLabel(" Endereço ");
		lbRua.setBounds(350, 100, 130, 30);
		lbNumero = new JLabel(" Número ");
		lbNumero.setBounds(740, 100, 130, 30);
		lbCidade  = new JLabel(" Cidade ");
		lbCidade.setBounds(10, 150, 130, 30);
		lbComplemento  = new JLabel(" Complemento ");
		lbComplemento.setBounds(420, 150, 130, 30);
		lbEstado  = new JLabel(" Estado ");
		lbEstado.setBounds(700, 150, 130, 30);
		lbTelefone = new JLabel(" Telefone ");
		lbTelefone.setBounds(10, 200, 130, 30);
		lbTelefone1 = new JLabel(" Telefone  ");
		lbTelefone1.setBounds(345, 200, 130, 30);
		lbTelefone2 = new JLabel(" Telefone  ");
		lbTelefone2.setBounds(645, 200, 130, 30);
		lbBuscar = new JLabel(" Pesquisar  ");
		lbBuscar.setBounds(360, 310, 150, 30);
		lbBuscarNome = new JLabel(" Localizar por nome ");
		lbBuscarNome.setBounds(10, 350, 150, 30);
		
		lbBuscar.setFont(new Font("Courier New", Font.PLAIN, 16));
		lbBuscar.setForeground(Color.BLACK);
		
		pnNorte.add(lbNome);
		pnNorte.add(lbEstadoCivil);
		pnNorte.add(lbEmail);
		pnNorte.add(lbRua);
		pnNorte.add(lbDtNas);
		pnNorte.add(lbNumero);
		pnNorte.add(lbSexo);
		pnCentral.add(lbCidade);
		pnCentral.add(lbComplemento);
		pnCentral.add(lbEstado);
		pnCentral.add(lbTelefone);
		pnCentral.add(lbTelefone1);
		pnCentral.add(lbTelefone2);
		pnCentral.add(lbBuscar);
		pnCentral.add(lbBuscarNome);
		
		txNome = new JTextField();
		txNome.setBounds(10, 30, 570, 25);
		txEmail = new JTextField();
		txEmail.setBounds(10, 80, 520, 25);
		txRua = new JTextField();
		txRua.setBounds(230, 130, 440, 25);
		txNumero = new JTextField();
		txNumero.setBounds(715, 130, 100, 25);
		txDtNas = new JTextField();
		txDtNas.setBounds(570, 80, 245, 25);
		txCidade = new JTextField();
		txCidade.setBounds(10, 180, 355, 25);
		txComplemento = new JTextField();
		txComplemento.setBounds(400, 180, 150, 25);
		txTelefone = new JTextField();
		txTelefone.setBounds(10, 230, 200, 25);
		txTelefone1 = new JTextField();
		txTelefone1.setBounds(325, 230, 200, 25);
		txTelefone2 = new JTextField();
		txTelefone2.setBounds(615, 230, 200, 25);
		txBuscar  = new JTextField();
		txBuscar.setBounds(150, 350, 500, 25);
		
		pnNorte.add(txNome);
		pnNorte.add(txRua);
		pnNorte.add(txEmail);
		pnNorte.add(txNumero);
		pnCentral.add(txDtNas);
		pnCentral.add(txCidade);
    	pnCentral.add(txTelefone);
		pnCentral.add(txTelefone1);		
		pnCentral.add(txTelefone2);
		pnCentral.add(txBuscar);
		pnCentral.add(txComplemento);
		
		btSalvar = new JButton(" Salvar ");
		btSalvar.setBounds(10, 270, 150, 30);
		btExcluir = new JButton(" Excluir ");
		btExcluir.setBounds(175, 270, 150, 30);
		btAlterar = new JButton(" Alterar ");
		btAlterar.setBounds(342, 270, 150, 30);
		btLimpar = new JButton(" Limpar ");
		btLimpar.setBounds(505, 270, 150, 30);
		btListar = new JButton(" Listar ");
		btListar.setBounds(665, 270, 150, 30);
		btBuscar = new JButton(" Buscar ");
		btBuscar.setBounds(665, 347, 150, 30);
		
		pnCentral.add(btSalvar);
		pnCentral.add(btExcluir);
		pnCentral.add(btAlterar);
		pnCentral.add(btLimpar);
		pnCentral.add(btListar);
		pnCentral.add(btBuscar);
		
		String opSexo [] =
		    {" Masculino ", " Feminino "};
		
		sexo = new JComboBox<Object>( opSexo);
		sexo.setBounds(10, 130, 150, 25);
		sexo.setSelectedItem(true);
	    pnNorte.add(sexo);
	    	    
	    String opEstado [] =
		    {" Acre ", " Alagoas"," Amazonas ", " Amapá " , " Bahia ", " Ceará ", " Distrito Federal ", " Espírito Santo ",
	    		 " Goiás ", " Maranhão ", " Mato Grosso ", " Mato Grosso do Sul ", " Minas Gerais ", " Pará ", " Paraíba ",
	    		 " Paraná ", " Pernanbuco ", " Piauí ", " Rio de Janeiro ", " Rio Grande do Norte ", " Rio Grande do Sul ", 
	    		 " Rondônia ", " Rorâima ", " Santa Catarina ", " São Paulo ", " Sergipe ", " Tocantins "};
	    
	    estado = new JComboBox<Object>( opEstado);
		estado.setBounds(615, 180, 200, 25);
		estado.setSelectedItem(true);
	    pnCentral.add(estado);
	    
	    String opEstadoCivil [] =
		    {" Solteiro(a) ", " Casado(a) ", " Divorciado(a) ", " Viúvo(a)"};
		
		estadoCivil = new JComboBox<Object>( opEstadoCivil);
		estadoCivil.setBounds(665, 30, 150, 25);
		estadoCivil.setSelectedItem(true);
	    pnNorte.add(estadoCivil);
		
		modelo = new AgendaTableModel();
		modelo.addTableModelListener(this);
	//	modelo.addListaDeContatos(contatoList);
		modelo.addContato(new Contato());
		
		tabela = new JTable();
		tabela.setModel(modelo);	
		tabela.setPreferredScrollableViewportSize(new Dimension(500, 700));
		tabela.setFillsViewportHeight(true);
		
		JScrollPane scrollPane = new JScrollPane(tabela);
		pnSul.add(scrollPane);
		
		getContentPane().add(pnNorte);
		getContentPane().add(pnSul);
		getContentPane().add(pnCentral);
		
		btSalvar.addActionListener(this);
		btAlterar.addActionListener(this);
		btBuscar.addActionListener(this);
		btExcluir.addActionListener(this);
		btLimpar.addActionListener(this);
		btListar.addActionListener(this);
	}
	
	  private void Alterar() {
		  
	        ContatoController cc = new ContatoController();
	        long id = contatoList.get(registroAtual).getId();
	        try {
	            cc.alterar(id, txNome.getText(), txEmail.getText(), txDtNas.getText(), txTelefone.getText(),
	            		txTelefone1.getText(), txTelefone2.getText(), txNumero.getText(), txRua.getText(), txCidade.getText(),
	            		sexo.getSelectedItem(), estado.getSelectedItem(), estadoCivil.getSelectedItem(), txComplemento.getText());
	            JOptionPane.showMessageDialog(this, "Contato alterado com sucesso!");
	            limpar();
	            contatoList = new ContatoController().listaContatos();           
	        } catch (SQLException e) {
	            JOptionPane.showMessageDialog(this, "Nao foi possivel alterar contato!\n" + e.getLocalizedMessage());
	        } catch (ParseException e) {
	            JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getLocalizedMessage());
	        }
	    }
	 
	    private void salvar() {
	    ContatoController cc = new ContatoController();
	        try {
	            cc.salvar(txNome.getText(), txEmail.getText(), txDtNas.getText(), txTelefone.getText(),
	            		txTelefone1.getText(), txTelefone2.getText(), txNumero.getText(), txRua.getText(), txCidade.getText(),
	            		sexo.getSelectedItem(), estado.getSelectedItem(), estadoCivil.getSelectedItem(), txComplemento.getText());
	            
	            JOptionPane.showMessageDialog(this, "Contato salvo com sucesso!");
	            limpar();
	            contatoList = new ContatoController().listaContatos();
	        } catch (SQLException e) {
	            JOptionPane.showMessageDialog(this, "Nao foi possivel salvar contato!\n" + e.getLocalizedMessage());
	        } catch (ParseException e) {
	            JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getLocalizedMessage());
	        }
	    }
	 
	    private void excluir() {
	        ContatoController cc = new ContatoController();
	        long id = contatoList.get(registroAtual).getId();
	        try {
	            cc.excluir(id);
	            JOptionPane.showMessageDialog(this, "Contato excluido com sucesso!");
	            limpar();
	            contatoList = new ContatoController().listaContatos();
	        } catch (SQLException e) {
	            JOptionPane.showMessageDialog(this, "Nao foi possivel excluir o contato!\n" + e.getLocalizedMessage());
	        }
	    }
	 
	    private void localizar() {
	        ContatoController cc = new ContatoController();
	        try {
	            Contato c = cc.buscaContatoPorNome(txBuscar.getText());
	            txNome.setText(c.getNome());
	            txEmail.setText(c.getEmail());
	            txDtNas.setText(new SimpleDateFormat("dd/MM/yyyy").format(c.getDtNas()));
	            txTelefone.setText(c.getTelefone());
	            txTelefone1.setText(c.getTelefone1());
	            txRua.setText(c.getRua());
	            txNumero.setText(c.getNumero());
	            txCidade.setText(c.getCidade());
	            
	        } catch (SQLException e) {
	            JOptionPane.showMessageDialog(this, "Ocorreu um erro, tente novamente!\n" + e.getLocalizedMessage());
	        } catch (NullPointerException e){
	            JOptionPane.showMessageDialog(this, "Contato não localizado ou não existe!\n" + e.getLocalizedMessage());
	        }
	    }  
	 

		private void limpar() {
	        txNome.setText("");
	        txEmail.setText("");
	        txDtNas.setText("");
	        txBuscar.setText("");
	        txTelefone.setText("");
	        txTelefone1.setText("");
	        txRua.setText("");
	        txNumero.setText("");
	        txCidade.setText("");
	    }
		
	public void actionPerformed(ActionEvent acao) {
		if(acao.getSource() == btSalvar){
			salvar();
		}
		else if(acao.getSource() == btBuscar){
			localizar();
		}
		else if(acao.getSource() == btExcluir){
			excluir();		
		}
		else if(acao.getSource() == btLimpar){
			limpar();
		}
		else if (acao.getSource() == btListar){
			
		}
		else if (acao.getSource() == btAlterar){
			Alterar();			
		}
	}

	public static void main(String[] args) {
		Tela tl = new Tela();
		tl.setVisible(true);
		tl.setLocationRelativeTo(null);
		tl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	public void tableChanged(TableModelEvent arg0) {
		
	}

}
public class ContatoDao extends GenericDao {
				
	public void salvar(Contato c) throws SQLException{
		
		String insertContato = " INSERT INTO CONTATO ( nome, data_nascimento, numero, rua, cidade, email, sexo, estado, estado_civil, complemento) VALUES (?,?,?,?,?,?,?,?,?,?)";
		String insertTelefones = "INSERT INTO TELEFONE (id, idTelefone) VALUES (?,?,?)";
		int id = save(insertContato, c.getNome(), c.getDtNas(), c.getNumero(), c.getRua(), c.getCidade(), c.getEmail(), c.getSexo(), c.getEstado(), c.getEstadoCivil(), c.getComplemento());
		
		if (id > -1){
			save(insertTelefones, id, c.getTelefone());
			save(insertTelefones, id, c.getTelefone1());
			save(insertTelefones, id, c.getTelefone2());
		}
		
	}
	
	public void alterar (Contato c) throws SQLException{
		String update = "UPDATE CONTATOS" +
				" SET nome = ?, data_nascimento =?, numero=?, rua=? , cidade=? , email =?, sexo=?, estado=?, estado_civil=?, complemento=?  " +
				" WHERE id =?";
		update(update,c.getNome(), c.getDtNas(), c.getNumero(), c.getRua(), c.getCidade(), c.getEmail(), c.getSexo(), c.getEstado(), c.getEstadoCivil(), c.getComplemento());
		
	//	delete("DELETE FROM TELEFONE WHERE id = ?", c.getId());
		
	//	String updates = "INSERT INTO TELEFONE (id, telefone) values (?,?)";
	//	save(updates, c.getId(), c.getTelefone());		
		
	}
	
	public void excluir (long id) throws SQLException{
		String delete = "DELETE FROM CONTATO WHERE id = ?";
		delete(delete, id);
	}
	
	public List<Contato> findContatos() throws SQLException{
		
		List<Contato> contatos = new ArrayList<Contato>();
		
		String select= "SELECT c.id, c.nome, c.data_nascimento, c.numero, c.rua, c.cidade, c.email "; //, t.idTelefone,  " +
		//		"FROM Contato c " +
		//		"LEFT OUTER JOIN TELEFONE t on c.id = t.id";
	
		PreparedStatement stmt = getConnection().prepareStatement(select);
		ResultSet rs = stmt.executeQuery();
		
		while (rs.next()){
			Contato c = new Contato();
			String[] dados = new String[7];
	     	c.setId(rs.getLong("id"));
			dados [0] = (rs.getString("nome"));
			c.setEmail(rs.getString("email"));
			c.setDtNas(rs.getDate("data_nascimento"));
			c.setNumero(rs.getString("numero"));
			c.setRua(rs.getString("rua"));
			c.setCidade(rs.getString("cidade"));
			c.setTelefone(rs.getString("telefone"));
			c.setTelefone1(rs.getString("telefone1"));
			
			contatos.add(c);
		}
		
		rs.close();
		stmt.close();
		
		return contatos;
	
	}
	
public Contato finfByName(String nome) throws SQLException{		
		
		String select = "SELECT c.id, c.nome, c.data_nascimento,  c.numero, c.rua, c.cidade,c.email, t.idTelefone " +
				"FROM Contato c" +
				"LEFT OUTER JOIN TELEFONE t on c.id = t.id WHERE c.nome LIKE ?";
		
		Contato contato = null;
		PreparedStatement stmt = getConnection().prepareStatement(select);
		stmt.setString(1, "%"+nome+"%");
		ResultSet rs = stmt.executeQuery();
		
		while (rs.next()){
			
			Contato c = new Contato();
			
     		c.setId(rs.getLong("id"));
			c.setNome(rs.getString("nome"));
			c.setEmail(rs.getString("email"));
			c.setDtNas(rs.getDate("data_nascimento"));
			c.setNumero(rs.getString("numero"));
			c.setRua(rs.getString("rua"));
			c.setCidade(rs.getString("cidade"));
			c.setTelefone(rs.getString("telefone"));
			c.setTelefone1(rs.getString("telefone1"));
				
		}
		
		rs.close();
		stmt.close();
		return contato;		
	}
}
public class ContatoController {
	
	private Date formatarData(String data) throws ParseException{
		
		DateFormat formatter = new SimpleDateFormat ("dd/MM/yyyy");
		return new Date(formatter.parse(data).getTime());
		
	}
	
	public void salvar(long id, String nome, String email, String dtNascimento, String telefone, String telefone1, String telefone2,
			String numero, String rua, String cidade, String sexo, String estado, String estadoCivil, String complemento ) throws SQLException,
	ParseException{
		
		Contato c = new Contato();
		c.setNome(nome);
		c.setEmail(email);
		c.setDtNas(formatarData(dtNascimento));
		c.setTelefone(telefone);
		c.setTelefone1(telefone1);
		c.setTelefone2(telefone2);
		c.setNumero(numero);
		c.setRua(rua);
		c.setCidade(cidade);	
		c.setSexo(sexo);
		c.setEstado(estado);
		c.setEstadoCivil(estadoCivil);
		c.setComplemento(complemento);
		new ContatoDao().salvar(c);
	}
	
	
	public void alterar( long id, String nome, String email, String dtNascimento, String telefone, String telefone1, String telefone2,
			String numero, String rua, String cidade, String sexo, String estado, String estadoCivil, String complemento) throws SQLException,
	ParseException{
		
		Contato c = new Contato();
		c.setId(id);
		c.setNome(nome);
		c.setEmail(email);
		c.setDtNas(formatarData(dtNascimento));
		c.setTelefone(telefone);
		c.setTelefone1(telefone1);
		c.setTelefone2(telefone2);
		c.setNumero(numero);
		c.setRua(rua);
		c.setCidade(cidade);
		c.setSexo(sexo);
		c.setEstado(estado);
		c.setEstadoCivil(estadoCivil);
		c.setComplemento(complemento);
		
		new ContatoDao().alterar(c);		
	}

	
	public List<Contato>listaContatos(){
		
		ContatoDao dao = new ContatoDao();
		
		try{
			return dao.findContatos();
			
		}catch(SQLException e){
			JOptionPane.showMessageDialog(null, "Não foi possivel localizar esse contato\n" +
		e.getLocalizedMessage());
		}
		
		return null;
		
	}
	
	public void excluir (long id) throws SQLException{
		new ContatoDao().excluir(id);
	}
	
	public Contato buscaContatoPorNome(String nome) throws SQLException{
		ContatoDao dao = new ContatoDao();
		return dao.finfByName(nome);
	
	}
}

1 Resposta

R

tah aparecendo erro na classe tela… metodos alterar e salvar… mas o alterar ainda não foi desenvolvido totalmente…

Criado 3 de maio de 2013
Ultima resposta 3 de mai. de 2013
Respostas 1
Participantes 1