Dúvida com datas

3 respostas
ilidiopaulo

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();
            }

3 Respostas

thiago.correa

Está dando algum erro??! Qual é o tipo da coluna para inserir a data (timestamp, date) ?! A princípio usa-se a java.sql.Date para gravar datas neste formato no banco!

ilidiopaulo

Está dando o seguinte erro:

String index out of range: 4

O tipo de dado é Date.

estou importando o import java.sql.Date;

Bravox

coloca o StackTrace , pq parece que é uma exceção de String não de data !!

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