Dans JDBC, gérer les classes Date peut être un problème important. Les bases de données fournissent souvent plusieurs formats de champs date/heure, notamment la date, l'heure et l'horodatage. JDBC fournit des classes Java correspondantes pour chaque format, qui héritent toutes de java.util.Date.
Les pilotes JDBC gèrent souvent ces types de manière incorrecte, ce qui entraîne des bogues. Par exemple, sql.Date peut être spécifique au fuseau horaire, tandis que sql.Time peut contenir l'année, le mois et le jour en cours même si ces informations ne figurent pas dans ses données.
En fin de compte, le choix dépend du type SQL du champ accédé. PreparedStatement fournit des paramètres pour les trois types : #setDate(), #setTime() et #setTimestamp().
Cependant, il est important de noter que l'utilisation de ps.setObject(fieldIndex, utilDateObject); avec un util.Date régulier peut entraîner des problèmes lors de la récupération des données de la base de données.
Idéalement, les dates et les heures devraient être stockées sous forme de valeurs longues représentant des millisecondes ou des nanosecondes. Ceux-ci peuvent être facilement convertis vers et depuis des objets ou utilisés directement dans des requêtes SQL. Cette approche évite la complexité et les pièges potentiels de l'API Date JDBC/Java.
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!