OVH Cloud OVH Cloud

insertion et recupération de dates dans une base de données

4 réponses
Avatar
moc-ecnarfi
Bonjour,

Quelqu'un connait-il un bon tutoriel sur la manipulation des dates
dans une base de donnée avec java.
Parce que, je dois être un peu con, mais j'ai vraiment du mal à m'y
retrouver entre les java.util.date, java.sql.date, les calendar, les
gregoriancalendar sans parler des differentes BD qui utilisent des
formats plus ou moins standart.
J'ai déjà cherché sur internet, mais j'ai rien trouvé qui
m'éclaircisse vraiment les idées.
Alors, si vous connaissez un bon tutoriel ou une méthode "classique"
(si possible avec du code) je suis preneur.

Merci

4 réponses

Avatar
Adobex
Hello,

Ben tu fais comme tout le monde! Tu te démerdes! :-)
Mais non je plaisante!!
Bon selon moi, y a rien de très compliqué mais y a rien de vraiment
standard.

Tout dépend de la base que tu attaques et de ce que tu veux faire avec la
date, c'est à dire si c'est pour faire une mise à jour ou si c'est pour
faire un SELECT. Quoi qu'il en soit, personnellement j'utilise Calendar et
ensuite je découpe le tout et je le remodèle en fonction du format imposé
par la bdd. Il possible que ce ne soit pas le moyen le plus simple mais j'ai
toujours fait comme ça, je n'utilise pas les autres classes dont tu parles.

Voilà, mais grosso modo, ça dépend de ce que tu veux faire. Si tu maitrises
Calendar et String tu devrais t'en sortir assez bien.


Adobex
--
http://clxn.free.fr
ICQ# 85383955



"moc ecnarfi" a écrit dans le message de
news:
Bonjour,

Quelqu'un connait-il un bon tutoriel sur la manipulation des dates
dans une base de donnée avec java.
Parce que, je dois être un peu con, mais j'ai vraiment du mal à m'y
retrouver entre les java.util.date, java.sql.date, les calendar, les
gregoriancalendar sans parler des differentes BD qui utilisent des
formats plus ou moins standart.
J'ai déjà cherché sur internet, mais j'ai rien trouvé qui
m'éclaircisse vraiment les idées.
Alors, si vous connaissez un bon tutoriel ou une méthode "classique"
(si possible avec du code) je suis preneur.

Merci


Avatar
captainpaf
"moc ecnarfi" a écrit dans le message de news:

Bonjour,

Quelqu'un connait-il un bon tutoriel sur la manipulation des dates
dans une base de donnée avec java.
Parce que, je dois être un peu con, mais j'ai vraiment du mal à m'y
retrouver entre les java.util.date, java.sql.date, les calendar, les
gregoriancalendar sans parler des differentes BD qui utilisent des
formats plus ou moins standart.
J'ai déjà cherché sur internet, mais j'ai rien trouvé qui
m'éclaircisse vraiment les idées.
Alors, si vous connaissez un bon tutoriel ou une méthode "classique"
(si possible avec du code) je suis preneur.

Merci


Soit tu stockes ta date en bdd en utilisant la valeur numérique en
milliseconde. L'avantage c'est que c'est le plus standart, l'inconvénient
c'est que pour lire tes dates directement en bdd c'esr coton.
Soit tu utilises le format date que propose ta bdd. L'inconvénient bien sûr
c'est que ça change à chaque bdd.

Après, pour la manipulation de date, tu peux utiliser GregorianCalendar et
SimpleDateFormat.
Par exemple :
<code>
// recupération de la date courante
GregorianCalendar calendar = new GregorianCalendar();
// ajout d'un mois
calendar.add(GregorianCalendar.MONTH,1);
// affichage formaté de la date
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
System.out.println(sdf.format(calendar.getTime());
</code>

Avatar
Valère viandier
La gestions des dates en sgbd n'as rien d'étrange et de complexe.
Il faut comprendre 2 3 principes simples sur les dates en java avant tout.

L'objet Date permet de transporter la donnée (java.util.Date)
Elle peut etre manipulée avec un Calendar (interface) dont l'implémentation
de base est le GregorianCalendar
Elle peut être formatée ou parsée par un DateFormat implémenté dans le
SimpleDateFormat

Coté sgbd, il existe 3 formats supportés
- Date
- Heure
- Date & Heure

Les 3 wrappeurs pour ces types sont, respectivement java.sql.Date,
java.sql.Time et java.sql.Timestamp
En fonction du type retenus dans ta base, tu doit utiliser le bon wrappeur
et la bonne méthode d'accès

Pour la lecture :
pour une requete : "SELECT FACT_DATE_CREATION, ..... FROM FACTURE...."
java.sql.Date dateCreation = resultset.getDate("FACT_DATE_CREATION");

Pour le replacer dans un objet de donnée java.util.Date, un simple cast peu
suffir ici car java.sql.Date hérite de java.util.Date.
Je préfaire tout de même un :
java.util.Date maDate = new java.util.Date(dateCreation.getTime());


Pour les acces en écriture
Utilise de manière systèmatique un PreparedStatement et non un Statement
PreparedStatment statement = connexion.prepareStatement("INSERT INTO
FACTURE(FACT_DATE_CREATION,...) VALUES(?,?,.....)");
Ensuite, place tes paramètres de la manière suivante
statement.setDate("FACT_DATE_CREATION",new java.sql.Date(maDate.getTime()));
statement.setTime("FACT_DATE_CREATION",new java.sql.Time(maDate.getTime()));
statement.setTimestamp("FACT_DATE_CREATION",new
java.sql.Timestamp(maDate.getTime()));

int affectedRecords = statement.executeUpdate();

Surtout, n'utilise pas de cote, de transformation de date ou autre formatage
inutile.
Si tu as un soucis avec cette méthode, c'est que le driver JDBC que tu
utilise n'est pas correct

Bonne continuation


"moc ecnarfi" a écrit dans le message de
news:
Bonjour,

Quelqu'un connait-il un bon tutoriel sur la manipulation des dates
dans une base de donnée avec java.
Parce que, je dois être un peu con, mais j'ai vraiment du mal à m'y
retrouver entre les java.util.date, java.sql.date, les calendar, les
gregoriancalendar sans parler des differentes BD qui utilisent des
formats plus ou moins standart.
J'ai déjà cherché sur internet, mais j'ai rien trouvé qui
m'éclaircisse vraiment les idées.
Alors, si vous connaissez un bon tutoriel ou une méthode "classique"
(si possible avec du code) je suis preneur.

Merci


Avatar
moc-ecnarfi
Merci pour toutes vos réponses.

@+