"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo insertar y recuperar objetos java.time.LocalDate en bases de datos JDBC?

¿Cómo insertar y recuperar objetos java.time.LocalDate en bases de datos JDBC?

Publicado el 2025-01-14
Navegar:661

How to Insert and Retrieve java.time.LocalDate Objects in JDBC Databases?

Inserción y obtención de objetos java.time.LocalDate hacia/desde una base de datos SQL como H2

Pregunta: Cómo manejar los tipos java.time como LocalDate a través de JDBC con una base de datos SQL, como H2?

Enfoque heredado: Usando PreparedStatement::setDate y ResultSet::getDate funcionan para el tipo java.sql.Date obsoleto. Sin embargo, es preferible evitar estas clases heredadas problemáticas.

Enfoque moderno: Hay dos rutas principales:

  1. Controladores compatibles con JDBC 4.2: Si el controlador JDBC es compatible con JDBC 4.2 o posterior, puede trabajar directamente con objetos java.time. Estos controladores tienen métodos setObject y getObject para conversiones de tipos de datos.
  2. Controladores más antiguos, anteriores a JDBC 4.2: Para controladores anteriores a JDBC 4.2, convierten temporalmente objetos java.time a sus equivalentes java.sql y viceversa. Utilice nuevos métodos de conversión agregados a las clases heredadas.

Ejemplo de uso del controlador compatible con JDBC 4.2:

// Insert LocalDate as SQL DATE
preparedStatement.setObject(1, myLocalDate);

// Retrieve LocalDate from SQL DATE
LocalDate localDate = myResultSet.getObject("my_date_column", LocalDate.class);

Ejemplo de uso de un controlador no compatible:

// Convert LocalDate to java.sql.Date for insertion
java.sql.Date mySqlDate = java.sql.Date.valueOf(myLocalDate);
preparedStatement.setDate(1, mySqlDate);

// Convert java.sql.Date to LocalDate after retrieval
LocalDate localDate = mySqlDate.toLocalDate();

Recomendación: Utilice el enfoque compatible con JDBC 4.2 siempre que sea posible. Es más simple y seguro para escribir. Sin embargo, el método no compatible aún se puede utilizar para controladores que no son compatibles con JDBC 4.2.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3