insérer une valeur de date dans oracle en utilisant java ne fonctionne pas
J'essaie d'insérer le format de date dans Oracle à partir de Java EE Eclipes. Je peux insérer une valeur nulle mais pas une valeur de date. La date s'imprime dans la console mais ne met pas à jour la base de données. Voici mes requêtes:
Insertion de la valeur de la date: (NE FONCTIONNE PAS) Sortie de la console pour uDate = 20 / Sep / 16
public void updateUnsubscribe(String empid) {
DateFormat df = new SimpleDateFormat("dd/MMM/yy");
String uDate = df.format(new Date());
String unSub = "udate MYDB set edate ='" + uDate + '" where emp = "empid"';
}
Insertion de la valeur NULL: (TRAVAIL) Sortie de la console pour uDate = null
public void updateSubscribe(String empid) {
Date toNull = null;
String sub = "udate MYDB set edate ='" + toNull + '" where emp = "empid"';
}
Je ne reçois aucune erreur, du tout, le seul problème est que le champ de date n'est pas insertion de la date. Ce qui me manque? Ne suis-je pas en train de formater correctement mon champ de date.
1 answers
Vous pouvez utiliser la fonction oracle to_date pour convertir varchar en valeur de date, pour votre exemple:
public void updateUnsubscribe(String empid) {
DateFormat df = new SimpleDateFormat("dd/MM/yy");
String uDate = df.format(new Date());
String unSub = "udate MYDB set edate =to_date('" + uDate + ', 'dd/MM/yyyy')" where emp = "empid"';
}
Mais plutôt que, il est préférable d'utiliser JDBC PreparedStatement pour cette tâche:
public void updateUnsubscribe(String empid) {
PreparedStatement ps = conn.prepareStatement("update MYDB set edate=? where emp=?");
ps.setTimestamp(1, new java.sql.Timestamp(new Date()));
ps.setString(2, empid);
ps.executeUpdate();
}