Je souhaite que quelqu'un m'aider, je veux insérer dans ma BD(Mysql) une date , sachant que je travaille application jee (JSP et servlet),
que doit être le type de la date dans ma BD et aussi dans mon formulaire?
Je vous remercie d'avance.
Avec JDBC tu as au moins quatre solutions pour insérer une date à partir d'une java.util.Date
String sql = "INSERT INTO personne (AGE, NOM, DATENAIS) VALUES (?, ? , ?)"; // pas besoin de mettre d'apostrophes autour des paramètres
// on prépare la requête
PreparedStatement stmt = conn.prepareStatement(sql);
// on lui passe des arguments
int age = 10;
String nom = "solution avec getTime";
java.util.Date noel = new java.util.Date();
//== premiere solution SQLDate========================================
stmt.setInt(1, age); // le premier argument commence à 1
stmt.setString(2, nom);
stmt.setDate(3, new java.sql.Date(noel.getTime())); // n'insert pas le temps !!!!
stmt.execute();
//== deuxieme solution SimpleDateFormat========================================
stmt.setInt(1, age); // le premier argument commence à 1
stmt.setString(2, "Solution avec format iso");
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = fmt.format(noel);
stmt.setString(3, strDate); // passage de l'argument String pour la date
stmt.execute();
//==troisieme solution Timestamp========================================
stmt.setInt(1, age); // le premier argument commence à 1
stmt.setString(2, "Solution avec timestamp");
stmt.setTimestamp(3, new java.sql.Timestamp(noel.getTime())); // ok date + time
stmt.execute();
//== quatrième solution avec LocalDateTime (java8)
stmt.setInt(1, age); // le premier argument commence à 1
stmt.setString(2, "Solution LocalDateTime avec timestamp");
LocalDateTime lc = LocalDateTime.now();
stmt.setTimestamp(3, Timestamp.valueOf(lc)); // ok date + time
stmt.execute();
Pour lire une java.sql.Date depuis un recordset :
String sql = "SELECT age, nom, datnaissance FROM personne";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// on utilise un formatage
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while (rs.next()) {
System.out.println("age = " + rs.getInt("age") + " naissance = " + fmt.format(rs.getTimestamp("datnaissance")));
}
// sinon pour passer de java.sql.Date à java.util.Date
java.util.Date newDate = rs.getTimestamp("datnaissance");