Maison >base de données >tutoriel mysql >Comment insérer correctement un « java.util.Date » dans une base de données à l'aide de Java ?

Comment insérer correctement un « java.util.Date » dans une base de données à l'aide de Java ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-06 10:46:41207parcourir

How to Properly Insert a `java.util.Date` into a Database Using Java?

Date Java - Insertion dans une base de données

Pour insérer un enregistrement avec un champ java.util.Date dans une base de données, vous allez besoin d'utiliser java.sql.PreparedStatement avec un java.sql.Date ou java.sql.Timestamp.

Code et problème d'origine

Le problème avec votre code d'origine est que vous essayez d'insérer un java.util.Date directement dans la base de données sous forme de chaîne. Au lieu de cela, vous devez convertir le java.util.Date en java.sql.Date et utiliser une instruction préparée pour insérer la valeur :

java.util.Date en java.sql.Date

java.util.Date myDate = new java.util.Date("01/01/2009");
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());

Préparé Déclaration

sb.append("INSERT INTO USERS");
sb.append("(USER_ID, FIRST_NAME, LAST_NAME, SEX, CRDATE) ");
sb.append("VALUES ( ");
sb.append("?, ?, ?, ?, ?");
sb.append(")");

Connection conn = ...; // get the connection somehow
PreparedStatement stmt = conn.prepareStatement(sb.toString());

stmt.setString(1, userId);
stmt.setString(2, myUser.GetFirstname());
stmt.setString(3, myUser.GetLastname());
stmt.setString(4, myUser.GetSex());
stmt.setDate(5, sqlDate);

Avantages

L'utilisation d'une instruction préparée offre plusieurs avantages :

  • Échappe automatiquement les chaînes, empêchant ainsi les requêtes SQL potentielles attaques par injection.
  • Fournit une sécurité de type, garantissant que la valeur correcte est insérée dans le base de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn