Maison > base de données > tutoriel mysql > Comment insérer correctement les champs java.util.Date dans une base de données ?

Comment insérer correctement les champs java.util.Date dans une base de données ?

DDD
Libérer: 2025-01-06 10:59:42
original
834 Les gens l'ont consulté

How to Properly Insert java.util.Date Fields into a Database?

Insertion des champs java.util.Date dans une base de données

Question :

Je rencontre une erreur lorsque j'essaie de insérez un enregistrement avec un champ java.util.Date dans une base de données. L'erreur indique que « La syntaxe de la représentation sous forme de chaîne d'une valeur datetime est incorrecte ». Comment puis-je résoudre ce problème ?

Solution :

Pour insérer un champ java.util.Date dans une base de données, vous devez d'abord envisager d'utiliser un mappage relationnel d'objet ( ORM) telle qu'Hibernate pour faire abstraction des requêtes SQL. Cependant, si cela n'est pas réalisable, vous pouvez suivre les étapes suivantes :

  1. Utiliser un java.sql.PreparedStatement pour exécuter la requête SQL.
  2. Convertir le java.util.Date instance à un objet java.sql.Date ou java.sql.Timestamp.
  3. Utilisez la méthode setDate() de PreparedStatement pour définir la valeur de le champ de date avec l'objet converti.

Exemple :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

java.util.Date myDate = new java.util.Date("10/10/2009");

java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());

 

Connection conn = ...; // Obtain the database connection

 

String sql = "INSERT INTO USERS (USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) VALUES (?, ?, ?, ?, ?);";

PreparedStatement stmt = conn.prepareStatement(sql);

 

stmt.setString(1, userId);

stmt.setString(2, myUser.GetFirstName());

stmt.setString(3, myUser.GetLastName());

stmt.setString(4, myUser.GetSex());

stmt.setDate(5, sqlDate);

 

stmt.executeUpdate(); // Execute the SQL query

Copier après la connexion

Cette approche échappe automatiquement les chaînes et empêche les vulnérabilités d'injection SQL.

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal