Java, Data e MySql

2 respostas
F

Boa noite pessoal, estou com um problemao (aparentemente)… tenho uma aplicação que tenta gravar em um banco MySql varios registros, um deles em especial é a DATA.

Pois bem, eu nao to conseguindo formata a data de tal forma que o banco do mysql aceite (yyyy-MM-dd).

Tenho um esquema de calendario e talz que funciona bala, mas ele esta configurado para (dd/MM/yyyy), e para obter a data que esta nele eu utilizo o metodo .getDate(), e so por curiosidade dei um println() na data de obti para ver como ele escreve e escreve mais ou menos assim (Aug 25… etc) ou seja, nada haver com os dois casos acima.

Como faço para funcionar isso…

ai vao alguns trecho do codigo para voces entenderem melhor:

public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(adaptee.cmdSalvar)) {
          ab.setClientes(Integer.parseInt(adaptee.txtCodigo.getText()), 
                                            adaptee.txtNome.getText(),
                                            adaptee.txtBairro.getText(),
                                            adaptee.txtRua.getText(),
                                            adaptee.txtCEP.getText(),
                                            adaptee.txtCidade.getText(),
                                            adaptee.txtTelefone.getText(),
                                            [b]adaptee.jdcData.getDate().toString()[/b], 0);     
        }

Acima é a minha chamada pro metodo que esta na classe AcessoBanco

...
public void setClientes(int codigo, String nome, String bairro, String rua,
                                String cep, String cidade, String telefone, [b]String data[/b], int i) {                       
            try {  
                
                System.out.println("Test " + data);
                rs = this.getFilme(codigo);
                st = con.createStatement();
                query = "UPDATE cliente SET nome = '" + nome +
                        "', rua = '" + rua +
                        "', bairro = '" + bairro +
                        "', cep = '" + cep +
                        "', cidade = '" + cidade +
                        "', telefone = '" + telefone +
                        "', data = '" + data + 
                        "' WHERE codigo = " + codigo + ";";
                st.executeUpdate(query);
            } catch (SQLException sqlex) {
                sqlex.printStackTrace();
                sqlex.getSQLState();
            } catch (Exception e) { e.printStackTrace(); }

    }
...

Desde ja agradeco a ajuda.

2 Respostas

_

hmm…

sabe o que voce podia fazer???
da uma lida em PreparedStatement…

com ele voce nao precisa se preocupar com o formato da data, ele arruma direitinho pra voce…

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

se nao bastar, da uma procurada no google que voce encontra como usar…

boa sorte!

F
so pra tirar a duvida:

PreparedStatement pstmt = con.prepareStatement(UPDATE EMPLOYEES

SET SALARY = ?, DATA = ? WHERE ID = ?);

pstmt.setBigDecimal(1, 153833.00)

pstmt.setInt(2, 110592)

pstmt.setDate(3, 25/08/2005)

ele vai funcionar assim?

Valew _Renatu!

Criado 25 de agosto de 2005
Ultima resposta 26 de ago. de 2005
Respostas 2
Participantes 2