Dúvida com datas

2 respostas
R

Pessoal, estou com um problema para adicionar datas em um banco de dados mysql.
Eu estou usando a seguinte lógica.
A data tem que ser passada da seguinte forma "dd/MM/yyyy, como a "/" não é aceita como String então eu estou quebrando a data que vem de um JTestField, isolando a barra.
Depois eu concateno o dia, mes e ano e tento gravar no banco, mas não estou conseguindo.
Alguém sabe o que pode ser o problema.
Obs: preciso fazer cálculos com a data.

Estou postando o código para ver se ajuda.

try
           {                
                String classpath = "mysql-connector-java-5.0.4-bin.jar";
                String driverName = "com.mysql.jdbc.Driver";
                Class.forName(driverName);
                String url = "jdbc:mysql://localhost:3306/hiroko";
                String username = "administrador";
                String password = "123456";
                Connection con= DriverManager.getConnection(url, username, password);
               
                SimpleDateFormat dataent = new SimpleDateFormat("dd/MM/yyyy");           
                Date inicial = (Date) dataent.parse(jTFdataent.getText());
                    String data = "22/03/1976";
                    String diaent = data.substring(0,1);
                    String mesent = data.substring(3,4);
                    String anoent = data.substring(6,9);
                            Integer.parseInt(diaent.substring(0,1));
                            Integer.parseInt(mesent.substring(3,4));
                            Integer.parseInt(anoent.substring(6,9));
                String dataentrega=(diaent + mesent + anoent);
                            
                SimpleDateFormat datasai = new SimpleDateFormat("dd/MM/yyyy");           
                Date termino = (Date) dataent.parse(jTFdatasai.getText());
                    String diasai = data.substring(0,1);
                    String messai = data.substring(3,4);
                    String anosai = data.substring(6,9);
                            Integer.parseInt(diasai.substring(0,1));
                            Integer.parseInt(messai.substring(3,4));
                            Integer.parseInt(anosai.substring(6,9));
               String datasaida =(diasai + messai + anosai);                            
                
                incluir = ("insert into estoque " + " values (?,?,?,?,?,?,?,?,?,?)");
                PreparedStatement stmt = con.prepareStatement(incluir);
                stmt.executeUpdate(incluir);                
           } 
                
                catch (ClassNotFoundException e)                
            {
                    //Driver não encontrado
                System.out.println("O driver expecificado não foi encontrado.");
                e.printStackTrace();
            } 
                
                catch (SQLException e)
            {
                    //Não está conseguindo se conectar ao banco
                System.out.println("Não foi possível conectar ao Banco de Dados");
                e.printStackTrace();
            }
                
                catch (ParseException e)
            {   
                JOptionPane.showMessageDialog(null,"Data sem consistência");
                e.printStackTrace();
            }

2 Respostas

B

Ola,

Eu não vi no seu codigo a passagem de parametros para o statement, isto é, vc setar os parametros usando os metodos, setString, setDate… para os valores encontrados em “?,?,?,?” do seu comando sql.

F

:cool:
E ae, tubo blz?

Bom, de qualquer forma não se esqueça que o formato da data para ser enviado ao banco é yyyy-mm-dd ( 2007-03-01 )
Esse objeto Date é do util ou do sql?

import java.util.Date;

ou

import java.sql.Date;

Se não me engano o do Date da util é incompatível com PreparedStatement. Não tenho certeza, mas já vi um trabalho de faculdade onde eu e um amigo meu quebramos a cabeça para rodar uma aplicação usando PreparedStatement com Date sendo da util, e não conseguimos e depois de convertermos para Date do sql ai deu tudo certo!

De uma verificada nisso!

Espero ter ajudado!!! :lol:

Criado 1 de março de 2007
Ultima resposta 3 de mar. de 2007
Respostas 2
Participantes 3