Question : Comment gérer les types java.time comme LocalDate via JDBC avec une base de données SQL, comme H2 ?
Approche héritée : L'utilisation de PreparedStatement::setDate et ResultSet::getDate fonctionne 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 d'un 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 Pilote :
// 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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!