Ajuda formato data para gravar banco (PreparedStatement)

Java

01/04/2015

Bom dia!!!

Estou com um projeto onde criei dos models com gets e sets dos atributos das tabelas do banco de dados, criei tb uma classe com todos os comandos (insert, update, delete, select), porem estou com 3 dificuldades:

1 - tenho um campo datanasc do tipo date e nao estou conseguindo passar para o obj a formatacao (MM-dd-yyyy) para gravar no banco e certamente retornar do banco o formato (dd-MM-yyyy) para exibir na tela depois de cadastrada.

    public boolean incluir(Clientes obj) throws SQLException {
        Conexao conn = new Conexao();
        String SQL = "insert into tb_clientes (codigo, nome, cpf, estado_civil, endereco, numero, bairro, cep, cidade, datanasc) "
                + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
        PreparedStatement ps = conn.getConexao().prepareStatement(SQL);
        ps.setInt(1, obj.getCodigo());
        ps.setString(2, obj.getNome());
        ps.setString(3, obj.getCpf());
        ps.setString(4, obj.getEstado_civil());
        ps.setString(5, obj.getEndereco());
        ps.setString(6, obj.getNumero());
        ps.setString(7, obj.getBairro());
        ps.setString(8, obj.getCep());
        ps.setInt(9, obj.getCidade().getCodigo());
        ps.setDate(10, obj.getDatanasc());                 // ocorre erro nessa linha
        int registros = ps.executeUpdate();
        if (registros > 0)
            return true;
        else
            return false;
    }    


2 - tenho chave primaria codigo na tabela e quero fazer via programacao que ao clicar em novo pegue o ultimo codigo cadastrado e some mais 1 para gerar a chave automatica. Nao quero fazer generators no banco.

3 - tenho um combobox onde traz o nome da cidade da tabela cidade no cadastro de clientes, ou seja, tenho esse relacionamento do banco. E para isso dentro do construtor cliente instanciei a classe cidade

    public Clientes() {
        cidade = new Cidade();
    }


feito isso criei um metodo carregacombo:

public Vector<Cidade> carregaCombo() throws SQLException {
    Conexao conn = new Conexao();
    Vector<Cidade> dados = new Vector<Cidade>();
    String sql = "select * from tb_cidades order by nome";
    PreparedStatement ps = conn.getConexao().prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
        Cidade obj = new Cidade(rs.getInt("codigo"), rs.getString("nome"), rs.getString("uf"));
        dados.add(obj);
    }
    return dados;


aqui ja tenho uma duvida, como na tabela cidade tenho 3 atributos tive que colocar os 3 nesta linha Cidade obj = new Cidade(rs.getInt("codigo"), rs.getString("nome"), rs.getString("uf")); pq senao dava erro, mas e se a tabela tivesse 20 atributos, teria que relacionar os 20 atributos????

No formulario de clientes instanciei a classe clientedata e cidadedata e em uma variavel vetorcidade chamei o metodo carregacombo() e recriei este combo com os dados da cidade, perfeito, funcionou, mas agora como faço para ao pesquisar um cliente ou percorrer os registros trazer no combo o nome da cidade conforme o codigo da cidade cadastrada na tabela cliente?

    public jIFClientes() {
        initComponents();
        obj = new Clientes();
        try {
            DAO = new ClientesData();
            DAOCidade = new CidadeData();
            vetorCidade = DAOCidade.carregaCombo();
            jCb_cidade.setModel(new DefaultComboBoxModel(vetorCidade));
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(this, "Erro: " + erro.getMessage());
        }        
    }


Fico aguardando ajuda de vcs

Desde ja agradeço
Iramar Junior

Iramar Junior

Curtidas 0
POSTAR