Java - insertar fecha en BD con un Jchooser

 
Vista:
Imágen de perfil de Maria del Rosario

insertar fecha en BD con un Jchooser

Publicado por Maria del Rosario (4 intervenciones) el 26/10/2017 19:56:37
Buen dia!!!! Tengo una gran duda, no se como guardar en mi BD en MySQL la fecha que selecciono en un jChooser en java
El campo fecha lo tengo definido como (DATE) en mi BD, en java inserte un Jchooser para elegir lafecha, pero a la hora de insertarla en la base de datos no me deja.

Este es mi codigo de la clase para insertar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void guardar_user(Connection conexion, Usuarios usuarios) throws SQLException{
    try{
        PreparedStatement consulta;
 
        consulta = conexion.prepareStatement("INSERT INTO " + this.tabla + "(Nombre_user, Ap_user, Am_user,  Fereg_user) VALUES(?, ?, ?, ?, ?, ?)");
        consulta.setString(1, usuarios.getNombre_user());
        consulta.setString(2, usuarios.getAp_user());
        consulta.setString(3, usuarios.getAm_user());
        consulta.setDate(6, (Date) usuarios.getFereg_user());
 
        consulta.executeUpdate();
    }catch(SQLException ex){
        throw new SQLException(ex);
    }
}

y este el codigo del boton para guardar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void Boton_AgregarActionPerformed(java.awt.event.ActionEvent evt) {
 
    String Nombre_user = Jtext_Nombre.getText();
    String Ap_user = Jtext_Ap1.getText();
    String Am_user = Jtext_Ap2.getText();
    Date Fereg_user = Date_Fechareg.getDate();
    this.usuarios.setNombre_user(Nombre_user);
    this.usuarios.setAp_user(Ap_user);
    this.usuarios.setAm_user(Am_user);
    this.usuarios.setFereg_user(Fereg_user);
    try{
    this.usuarios_servicio.guardar_user(Conexion.obtener(), this.usuarios);
    Agregar_usuario.this.dispose();
    }catch(SQLException ex){
        System.out.println(ex.getMessage());
        JOptionPane.showMessageDialog(this, "Ha surgido un error y no se ha podido guardar el registro.");
    }catch(ClassNotFoundException ex){
        System.out.println(ex);
        JOptionPane.showMessageDialog(this, "Ha surgido un error y no se ha podido guardar el registro.");
    }
}

estos son los errores que me manda
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
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
	at servicios.Usuarios_servicio.guardar_user(Usuarios_servicio.java:35)
	at reportes.Agregar_usuario.Boton_AgregarActionPerformed(Agregar_usuario.java:378)
	at reportes.Agregar_usuario.access$400(Agregar_usuario.java:23)
	at reportes.Agregar_usuario$5.actionPerformed(Agregar_usuario.java:143)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

La conexión esta muy bien, así que yo supongo que porque en el formato de la BD tengo ("año-mes-dia") y el Jchooser me lo registra como (""Dia/mes/año), pero no se como cambiarle el formato, me podrian ayudar??? porfi
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

insertar fecha en BD con un Jchooser

Publicado por Krlos Kastro (4 intervenciones) el 26/10/2017 23:14:16
Buenas tardes.

La forma como trabajo con fecha es la siguiente en mysql tengo creada por ejemplo fec_ing varchar(10), y grabado datos desde mysql en la siguiente forma:

Declaro una variable publica, entre otras variables...:
String fec_ing;

En el boton guardar:

SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/YYYY");

fec_ing=formatoFecha.format(fecha_ing.getDate()); // fecha_ing es el nombre del control jChooser
.....
....
PreparedStatement pst = con.prepareStatement(insert);
pst.setString(7, fec_ing);

int x = pst.executeUpdate();

Cualquier duda me escribes a: [email protected]

Visita a: https://www.facebook.com/cgcastroprognet/

Saludos
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 rosario

insertar fecha en BD con un Jchooser

Publicado por rosario (4 intervenciones) el 31/10/2017 23:05:55
muchas gracias me sirvió de mucho cambiar el tipo de dato a varchar
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