Foros del Web » Programación para mayores de 30 ;) » Java »

guardar fechas desde Netbeans en PostgreSQL

Estas en el tema de guardar fechas desde Netbeans en PostgreSQL en el foro de Java en Foros del Web. Hola a todos..de nuevo yo por aca..... Necesito guardar una fecha de un jTextField de NetBEans 6.9 a un campo de una tabla en Postgres. ...
  #1 (permalink)  
Antiguo 23/08/2011, 13:57
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
guardar fechas desde Netbeans en PostgreSQL

Hola a todos..de nuevo yo por aca.....
Necesito guardar una fecha de un jTextField de NetBEans 6.9 a un campo de una tabla en Postgres.
En la tabla, el campo tiene formato date. No se como hacer e intentando pero me da un error. Busqué en la red y no encontré una buena respuesta..alguien puede ayudarme. Gracias.
  #2 (permalink)  
Antiguo 23/08/2011, 14:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: guardar fechas desde Netbeans en PostgreSQL

No se en que formato se guardan las fechas en PostgreSQL, pero al menos en MySQL se guardan en formato: yyyy-MM-dd
En ese caso para insertar la fecha tienes que primero darle ese format. Verifica la clase SimpleDateFormat. Eso te puede ayudar a convertir las fechas al formato correcto antes de hacer la insercion
  #3 (permalink)  
Antiguo 23/08/2011, 15:21
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: guardar fechas desde Netbeans en PostgreSQL

Gracias voy a probar a ver como me va. Saludos.
  #4 (permalink)  
Antiguo 24/08/2011, 10:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 20
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: guardar fechas desde Netbeans en PostgreSQL

Buenas,
Si en la DB postgres tienes el campo como un date, tiene que obtener el valor de jtextfield y primero validar que sea una fecha y luego convertirlo a un objeto date para poder salvarlo. puedes ver en que formato estas tratando de que te entren la fecha y convertirlo de esta manera te dejo un metodo que le pasas el string y el formato y te la convierte.

Código:
    
public Date toDate(String fechaTomada, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        try {
            return sdf.parse(fechaStr);
        } catch (Exception e) {
            e.printStackTrace();
            //logger.info(e);
            return null;
        }
    }
Aqui algunos tipos de formatos que puedes utilizar.

Código:
    
public static final String FORMAT_NUMERIC_DATE = "dd/MM/yyyy";
    public static final String FORMAT_NUMERIC_DATE_1 = "yyyy-MM-dd";
    public static final String HOUR_MINUTES_SECONDS = "HH:mm:ss";
    public static final String MINUTES_SECONDS = "mm:ss";
    public static final String HOUR_MINUTES = "HH:mm";
    public static final String FORMAT_NUMERIC_DATE_HOUR_MINUTES_SECONDS = "dd.MM.yyyy  HH:mm:ss";
    public static final String FORMAT_NUMERIC_DATE_HOUR_MINUTES = "dd/MM/yyyy HH:mm";
Espero te solucione el problema.
Saludos.
  #5 (permalink)  
Antiguo 25/08/2011, 08:12
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: guardar fechas desde Netbeans en PostgreSQL

Ante todo gracias por responder...

He tratado de usar el método SimpleDateFormat pero no me ha funcionado...

Ademas utilizo un jFormattedTextField para el ingreso de la fecha, por lo que cree una clase para darle formato al campo como yo quiero.

Clase FormatoFecha.
public FormatoFecha() throws ParseException
{
// Las # son cifras y representa "dd-mm-yyyy "
super ("##-##-####");
}

/** Una clase adecuada para convertir Date a String y viceversa de forma cómoda. Puedes ver cómo se hace el patrón "dd/MM/yyyy" en la API.
El patrón que pongamos aquí debe cuadrar correctamente con la máscara que hemos puesto en el constructor */

private SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");

/** Convierte el texto del editor en un Date */
@Override
public Object stringToValue(String text) throws ParseException
{
return formato.parseObject(text);
}

/** Redibe un Date o null y debe convertirlo a texto que cumpla el patrón indicado anteriormente */
@Override
public String valueToString(Object value) throws ParseException
{
if (value instanceof Date)
return formato.format((Date)value);
return formato.format(new Date());
}
}


Luego inicie el jFormattedTextField como

JFormattedTextField textField = null;
try {
textField = new JFormattedTextField(new FormatoFecha());
} catch (ParseException ex) {
Logger.getLogger(GVaca.class.getName()).log(Level. SEVERE, null, ex);
}

textField.setValue(new Date());

Cuando se hace clic en el Botón guardar tomo el valor del campo así:

Date fechaNac1 = (Date) jFormattedTextField1.getValue();

y lo paso a un método que me guarda otros datos.

public void almacenarVaca(int rp1, String nombreV1, Date fechaNac1, int partos1, String vacunas1, String enfermedades1, String estado1, String establecimiento1)throws ClassNotFoundException, SQLException, ParseException{
rp = rp1;
nombreV = nombreV1;
fechaNac = fechaNac1;
partos = partos1;
vacunas = vacunas1;
enfermedades = enfermedades1;
estado = estado1;
establecimiento = establecimiento1;
int lineas_modi=0;
PreparedStatement consulta;

consulta = conexion.prepareStatement("INSERT INTO vaca(rp, nombreV, fechaNac, partos, vacunas, enfermedades, estado,establecimiento) VALUES (?, ?, ?, ?. ?, ?, ?, ?)");
try
{
consulta.setInt(1, rp);
consulta.setString(2, nombreV);
consulta.setDate(3,fechaNac );
consulta.setInt(4, partos);
consulta.setString(5, vacunas);
consulta.setString(6, enfermedades);
consulta.setString(7, estado);
consulta.setString(8, establecimiento);

lineas_modi = consulta.executeUpdate();
System.out.println("Los datos se guardaron correctamente");
}catch (Exception e)
{
System.out.println("Problema al consultar la bd -> " + e.getMessage());
}

cierraConexion();
}

y me da el siguiente error en el setDate:

cannnot find symbol.

Algo estoy haciendo mal pero no me doy cuenta que. como cuatro ojos valen mas que dos..pido por favor se fijen si encuentren el error..
Perdón por complicarle la mañana.
Saludos.
  #6 (permalink)  
Antiguo 25/08/2011, 08:59
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: guardar fechas desde Netbeans en PostgreSQL

Si ya tienes la fecha almacenada en un objeto java.util.Date, pues para ingresarlo en un PreparedStatement yo utilizaría lo siguiente:

Código Java:
Ver original
  1. pstm.setDate(3, new java.sql.Date(fechaNac.getTime()));

Salu2.
  #7 (permalink)  
Antiguo 25/08/2011, 16:44
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: guardar fechas desde Netbeans en PostgreSQL

GRACIAS por la respuesta...probaré y luego te cuento. Saludos.
  #8 (permalink)  
Antiguo 27/08/2011, 07:42
 
Fecha de Ingreso: agosto-2011
Mensajes: 21
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: guardar fechas desde Netbeans en PostgreSQL

Hola farfamorA

probé lo que me dijiste..pero ahora me da el siguiente error:

Problema al consultar la bd -> ERROR: error de sintaxis en o cerca de «$5»

que significa «$5»?????

Etiquetas: fechas, netbeans, postgresql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.