Maison >base de données >tutoriel mysql >Comment insérer correctement les 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 :
Exemple :
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
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!