jueves, 14 de abril de 2016

Guardar fecha Date en MySQL desde JAVA

Les presento ahora la versión 2.1.2 de mi proyecto de ejemplo que realizo en java. Debo aclarar que este proyecto únicamente lo desarrollo para todos aquellos que se estén iniciando en java. Está por demás decir, que existen muchas maneras que programar los métodos que yo utilizo, algunos nos complicamos más, otros lo simplifican, así que las ideas presentadas aquí, son simplemente, una manera más de cómo realizar dichos métodos.

En ésta versión se tiene:
[v2.1.2]
  1. Guardado de fechas en mysql
  2. Recuperación de las fechas y colocadas en una tabla
  3. Colocado de fechas en un JDateChooser
[v2.0.1]
  1. Guardado de contraseñas encriptadas en md5 en mysql
  2. Validación de usuarios a través de la contraseña encriptadas
[v2.0.0]
  1. SplashScreen con barra de progreso modificable.
  2. Respaldar la base de datos
  3. Restaurar la base de datos
  4. Modificar la información del usuario en configuración de la cuenta.
[v1.0.0]
  1. Login.
  2. Creación de usuarios.
  3. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  4. Altas, bajas, modificaciones, busquedas en la BD.
  5. Uso de JDialog.
  6. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  7. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  8. Uso de ícono para la aplicación.
  9. Deshabilitar la opción del botón cerrar.
  10. Uso de abrir y regresar a otro jframe..
  11. Uso de clases.
  12. Uso de objetos completos.
  13. Manipulación de objetos como registros.
  14. Incluye Script de la BD. 

 Descripción de los cambios principales:

Las fechas en java, de un jdate chooser, se pueden obtener en formato long, es decir, en dígitos númericos muy largos.
Algo así: 1460696400000, esto a su vez, se puede convertir a texto y guardarlo como una cadena en la base de datos. Al momento de extraerlo de nuevo, se convierte a long y se le envía como parámetro al método settime de un objeto date.

La verdad, no sé si sea esta la manera correcta de guardar la fecha en mysql, sin embargo me pareció muy fácil de utilizarlo de esta forma.

Además, en este mismo formato, también se le puede asignar a un JDateChooser.

Métodos principales:

Para obtener la fecha en formato cadena de un obejto JDateChooser, se hace lo siguiente:

String fecha:
fecha= Long.toString(jdateFechaEvento.getDate().getTime());

Ahora que ya se tiene la fecha en un formato de texto, ésta, ya se puede enviar a un método que la guarde en mysql.

Obtener la fecha de mysql y pasarla a un formato de fecha, por ejemplo a este "2/4/2016", el proceso es el siguiente:

Date fechaEvento = new Date(); //se crea e inicializa un objeto de tipo Date
Calendar c; //Se crea un objeto de tipo calendar
String fecha; //la cadena en la que se guardará la fecha
/*Este proceso, es en realidad el while de la consulta que se realiza a la base de datos, para entenderlo mejor, descargar el ejemplo completo. Pero básicamente lo que se hace es, obtener la fecha en formato String, convertirla a long y asignarla al objeto tipo Date, usando el método setTime, el cual recibe un long*/
fechaEvento.setTime(Long.parseLong(temp.getFecha_evento()));
c = Calendar.getInstance(); //se obtiene una instancia de calendar, con la fecha actual.
c.setTime(fechaEvento); //se le asigna a calendar la fecha obtenida de la base de datos.
/*Se asigna a la cadena el formato deseado manualmente, este formato también se puede obtener de manaera más fácil con getdateformat, pero quise hacerlo de este modo*/
fecha = Integer.toString(c.get(Calendar.DATE))+"/"+
Integer.toString(c.get(Calendar.MONTH))+ "/"+Integer.toString(c.get(Calendar.YEAR));

Bueno, sin más, pueden descargarlo desde aquí:


Gracias por visitar.

2 comentarios: