Pergunta: Como lidar com tipos java.time como LocalDate via JDBC com um banco de dados SQL, como H2?
Legacy Approach: Usando PreparedStatement::setDate e ResultSet::getDate funcionam para o tipo java.sql.Date desatualizado. No entanto, é preferível evitar essas classes legadas problemáticas.
Abordagem moderna: Existem dois caminhos principais:
Exemplo de uso do driver compatível com 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);
Exemplo de uso de driver não compatível:
// 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();
Recomendação: Use a abordagem compatível com JDBC 4.2 sempre que possível. É mais simples e com segurança de digitação. No entanto, o método não compatível ainda pode ser usado para drivers que não suportam JDBC 4.2.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3