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:
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.
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