elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  obtener la fecha actual java.sql.Date
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: obtener la fecha actual java.sql.Date  (Leído 5,493 veces)
Yager2222

Desconectado Desconectado

Mensajes: 5


Ver Perfil
obtener la fecha actual java.sql.Date
« en: 23 Mayo 2020, 00:44 am »

Tengo que obtener la fecha actual en formato java.sql.Date. para pasar el dato a una tabla en MySQL, Pero estoy completamente perdido:

¿Cómo se inserta la fecha en MySQL desde java?

Código:
private Date fecha;


¿Cómo se definiría la "fecha" dentro del siguiente constructor para sacar su valor?

Código:
Venta v=new Venta(0, Integer.parseInt(request.getParameter("idCliente")), 
                    Integer.parseInt(request.getParameter("idLibro")), **fecha** ) {
};
                    gventas.registrarVenta(v);


Muchas gracias

Saludos


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: obtener la fecha actual java.sql.Date
« Respuesta #1 en: 2 Junio 2020, 14:31 pm »

Tengo que obtener la fecha actual en formato java.sql.Date. para pasar el dato a una tabla en MySQL, Pero estoy completamente perdido:

¿Cómo se inserta la fecha en MySQL desde java?

Código:
private Date fecha;


¿Cómo se definiría la "fecha" dentro del siguiente constructor para sacar su valor?

Código:
Venta v=new Venta(0, Integer.parseInt(request.getParameter("idCliente")), 
                     Integer.parseInt(request.getParameter("idLibro")), **fecha** ) {
};
                     gventas.registrarVenta(v);


Muchas gracias

Saludos

Hola,

Para la fecha actual usa java.util.Date().getTime(), son diferentes paquetes, pero mismo nombre de clase, el constructor de la fecha con sql recibe un long como parámetro, que lo obtenemos de getTime()


Código
  1. new java.util.Date().getTime()

por lo tanto quedaría

Código
  1. java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
  2. System.out.println(date.toString());

Output:

Código
  1. 2020-06-02
  2.  
  3. Process finished with exit code 0

También con

Código
  1. System.out.println(java.sql.Date.valueOf(LocalDate.now()));

Código
  1. 2020-06-02
  2.  
  3. Process finished with exit code 0
  4.  
Ahora para hacer un insert desde java con MySQL, debes conectarte a la db, construir la query, usar PreparedStatement que es la sentencia precompilada y segura.


« Última modificación: 3 Junio 2020, 10:28 am por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
TickTack


Desconectado Desconectado

Mensajes: 434


CipherX


Ver Perfil
Re: obtener la fecha actual java.sql.Date
« Respuesta #2 en: 4 Junio 2020, 17:59 pm »

Hola Yager2222,

no sé si todavía lo necesitas, pero de todos modos.
Use el paquete Calender primero para obtener la instancia y luego la hora.
Código:
java.util.Calendar

Y luego usalo en el constructor.
Código:
java.sql.Date

Esto debería verse como...
Código:
java.sql.Date fecha = new java.sql.Date(Calendar.getInstance().getTime().getTime());

Entonces el código final puede verse como asi:
Código:
Venta v=new Venta(0, Integer.parseInt(request.getParameter("idCliente")),
                       Integer.parseInt(request.getParameter("idLibro")), new java.sql.Date(Calendar.getInstance().getTime().getTime()) ) {
                       };
                       gventa.registrarVenta(v);

Citar
¿Cómo se inserta la fecha en MySQL desde java?
La siguiente es otra manera:
Inserta fechas, o más bien datos en Java a una base de datos usando PreparedStatement. El tutorial de oracle "oficial" sobre cómo lograr tal cosa se puede encontrar aquí:
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

Un ejemplo sobre cómo insertar una fecha usando PreparedStatement:
Código:
final java.sql.Date fechaSQL = new java.sql.Date();
final java.sql.Timestamp horaSQL = new java.sql.Timestamp();

final PreparedStatement declaracionPreparada = connection.prepareStatement("insert into tblDates (date,time) values(?,?)");
declaracionPreparada.setDate(1,fechaSQL);
declaracionPreparada.setTimestamp(2,horaSQL);
declaracionPreparada.executeUpdate();

declaracionPreparada.close();
connection.close();
Tene en cuenta que el método executeUpdate() en una instancia de PreparedStatement devuelve un valor Integer que indica cuántas filas se vieron afectadas por la instrucción o devuelve el valor 0 para las instrucciones SQL que no devuelven nada. Puede ser conveniente utilizar ese valor para, por ejemplo, manejo de errores o registro simple solo por nombrar un par de ejemplos.
En términos ideales, vos utilizarías una declaración de bloque de recursos de prueba además del manejo adecuado del error para garantizar la eliminación y el registro adecuados de los recursos, incluso en el caso de excepciones:
https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

Ejemplo:
Código:
public final void viewTable(final Connection con) throws SQLException {

   final String query = "SELECT COF_NAME, SUP_ID, PRICE, SALES, TOTAL FROM COFFEES";

   try (final Statement stmt = con.createStatement()) {
       final ResultSet rs = stmt.executeQuery(query);

       while (rs.next()) {
           final String coffeeName = rs.getString("COF_NAME");
           final int supplierID = rs.getInt("SUP_ID");
           final float price = rs.getFloat("PRICE");
           final int sales = rs.getInt("SALES");
           final int total = rs.getInt("TOTAL");

           logger.info(coffeeName + ", " + supplierID + ", " +
                              price + ", " + sales + ", " + total);
       }
   } catch (final SQLException e) {
       logger._error_(e);
   }
}
Este fragmento de código se toma de los documentos de Oracle enumerados aquí (https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html), pero ligeramente modificado para incluir una interfaz de registro SLF4J (http://www.slf4j.org/).

Citar
¿Cómo se definiría la "fecha" dentro del siguiente constructor para sacar su valor?

Código:
Venta v=new Venta(0, Integer.parseInt(request.getParameter("idCliente")), 
                     Integer.parseInt(request.getParameter("idLibro")), **fecha** ) {
};
                     gventas.registrarVenta(v);
No estoy seguro de lo que estás pidiendo con respecto a tu segunda pregunta. ¿Podrías dar más detalles? Estoy pensando que simplemente lo definirías como el objeto Date que es. También puede convertir java.sql.Date y java.util.Date utilizando sus respectivos métodos y constructores. Por ejemplo, para convertir un java.util.Date en un java.sql.Date:
Código:
new java.sql.Date(utilDate.getTime());

Sin embargo, para el desarrollo de aplicaciones modernas, se recomienda que utilices una instancia de objeto Calendar en su lugar:
https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

O incluso mejor (realmente preferido), Joda-Time (https://www.joda.org/joda-time/) (java.time).

Además, si fuera tu, dejaría que Hibernate (http://hibernate.org/) u otras implementaciones de JPA (https://es.m.wikipedia.org/wiki/Java_Persistence_API) manejen la parte SQL de tu aplicación si estás trabajando con entidades/objetos específicos y mapeo de datos. La inclusión del Framework Spring hará que tu vida sea mucho más fácil (sin mencionar que hará que te contraten de manera mucho más interesante si podes trabajar en dicho marco):
https://spring.io/
https://spring.io/projects/spring-data-jpa


Saludos
« Última modificación: 4 Junio 2020, 22:21 pm por TickTack » En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: obtener la fecha actual java.sql.Date
« Respuesta #3 en: 4 Junio 2020, 19:46 pm »

doc la api Calendar es vieja, lo nuevo es la api java.time nativa desde la jdk 8 sin apis de terceros como joda time, pero igual yo tambien llegue a usar Joda Time.
« Última modificación: 4 Junio 2020, 23:35 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error con java.util.Date fecha incorrecta
Java
cyberserver 5 9,399 Último mensaje 31 Octubre 2010, 07:07 am
por benek
Cómo obtener la semana actual a partir del día actual
Bases de Datos
cpichi.cu 4 11,344 Último mensaje 25 Septiembre 2018, 17:25 pm
por cchianalino
Como insertar fecha en la que abrí por ultima vez un form(no la fecha actual) C#
.NET (C#, VB.NET, ASP)
arzteek 1 3,119 Último mensaje 17 Julio 2013, 04:00 am
por Eleкtro
[Ayuda] Como puedo obtener la fecha de captura de imagen en Java
Java
alex.mg 1 4,299 Último mensaje 19 Agosto 2013, 14:27 pm
por Alien-Z
PHP Cambiar fecha cadena a date
PHP
tomasvreal28 5 2,744 Último mensaje 5 Diciembre 2015, 03:54 am
por tomasvreal28
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines