Question : Comment gérer les types java.time comme LocalDate via JDBC avec une base de données SQL, telle que H2 ?
Approche héritée : Utilisation PreparedStatement::setDate et ResultSet::getDate fonctionnent pour le type java.sql.Date obsolète. Cependant, il est préférable d'éviter ces classes héritées problématiques.
Approche moderne : Il existe deux voies principales :
Exemple d'utilisation du pilote compatible 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);
Exemple d'utilisation d'un pilote non conforme :
// 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();
Recommandation : Utilisez l'approche conforme à JDBC 4.2 autant que possible. C'est plus simple et sécurisé. Cependant, la méthode non conforme peut toujours être utilisée pour les pilotes qui ne prennent pas en charge JDBC 4.2.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3