Bases de Datos - Ayuda insertar Date en sqlite

 
Vista:
Imágen de perfil de Su

Ayuda insertar Date en sqlite

Publicado por Su (2 intervenciones) el 16/12/2014 01:37:22
Hola, a ver si me podeis hechar una manita con este codigo porque yo ya no se donde mirar. Intento introducir una fecha en una base de datos sqlite, la ultima variable antes de executeUpdate() mantiene el formato correcto para su insercion, en cambio al realizar la insercion en la bd me inserta numeros (supongo que milisegundos). Donde estoy fallando? El codigo es este....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//Alta de Alumno
            if (opcion == 1){
 
                System.out.println("Indique el nombre del alumno:");
                String nombre = stdin.readLine();
                System.out.println("Indique el apellido del alumno:");
                String apellido = stdin.readLine();
                System.out.println("Indique el dni del alumno:");
                String dni = stdin.readLine();
                System.out.println("Indique la fecha de nacimiento del alumno: (dd/mm/yyyy");
                String fecha = stdin.readLine();
 
               SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
               java.util.Date date=null;
                try {
                    date = sdf1.parse(fecha);
                } catch (ParseException ex) {
                    Logger.getLogger(GestionAlumnos.class.getName()).log(Level.SEVERE, null, ex);
                }
               java.sql.Date sqlfecha = new Date(date.getTime());
 
                String sql="INSERT INTO alumno (nombre, apellido, dni, fechanacimiento) VALUES (?,?,?,?)";
                con.InsertarNuevoAlumno(sql, nombre, apellido, dni, sqlfecha);
}
 
 
 public int InsertarNuevoAlumno(String sql, String nombre, String apellido, String dni, java.sql.Date fechanacimiento){
 
        int filas=0;
        try {
            comando=conexion.prepareStatement(sql);
            comando.setString(1,nombre);
            comando.setString(2,apellido);
            comando.setString(3, dni);
            comando.setDate(4, fechanacimiento);  //Hasta aqui formato correcto
 
            filas=comando.executeUpdate();
            System.out.println(filas+" El alumno "+nombre+" "+apellido+" ha sido insertado en la base de datos");
            comando.close();
        } catch (SQLException ex) {
             System.out.println("Error sqlite,no  pudo realizar la insercion a la BD");
        }
            return filas;
      }


Y esto es lo que me inserta......(imagen)

screenshot.2

Gracias, un saludo!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda insertar Date en sqlite

Publicado por Ramiro (17 intervenciones) el 16/12/2014 13:27:01
No entiendo porque solo susana y maria tienen ese problema?

Podes postear la definición/estructura de la tabla?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Su

Ayuda insertar Date en sqlite

Publicado por Su (2 intervenciones) el 17/12/2014 20:11:53
Hola Ramiro, esto es un programa basico de ejemplo de conexion y manipulacion de datos en sqite. La gran mayoria de los datos estan introducidos manualmente desde consola, excepto Maria y Susana que estan introducidos desde el programa Java.
Mas o menos lo he solucionado, de una manera un poco "a lo burro" , al final encontre en la guia oficial que sqlite admite texto como formato de la fecha y asi se lo meti sin problema, aunque sigo sin entender porque no me admite java.sql.Date como formato.

De todas formas si conoces una forma mas "elegante" de insertar Date y porque he tenido este problema, las ideas nuevas tampoco vienen mal.

Un saludo y muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar