IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

PostGreSQL et tableau de Date


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut PostGreSQL et tableau de Date
    Bonjour

    j'ai une base de données en postgresql
    qui contient la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE "Vaccin"
    (
      "idVaccin" serial NOT NULL,
      nombre text NOT NULL,
      injeccion date[],
      rappel date[],
      CONSTRAINT "cleVaccin" PRIMARY KEY ("idVaccin")
    )
    WITH (
      OIDS=FALSE
    );
    mon probleme : comment je fais pour récupérer des tableaux de date en java?

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut
    j'ai tenté la methode de brute mais ça ne veut pas ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    String req = "SELECT * FROM public.\"Vaccin\" WHERE public.\"Vaccin\".\"idVaccin\" = " + id + ";";
            bd.r = bd.s.executeQuery(req);
            int j = 0;
            while (j == 0 && bd.r.next()) {
                System.out.println("Vaccin/constructeur");
                this.nombre = TypeVaccin.valueOf(bd.r.getString("nombre"));
                this.di = bd.r.getArray("injeccion");
                this.dr = bd.r.getArray("rappel");
                j++;
            }
            bd.disconnect();
            if (di != null) {
                this.linjection = (ArrayList<Date>) di.getArray();            
            }
            if (dr != null) {
                this.lrappel = (ArrayList<Date>) dr.getArray();            
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void listInArray(){
            this.di = (java.sql.Array)this.linjection;
            this.dr = (java.sql.Array)this.lrappel;
        }

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut
    pour l'insertion j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public String[] listInString() {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String[] ss = new String[2];
            int i = 0;
            ss[0] = "{";
            while (i < this.linjection.size()) {
                ss[0] += dateFormat.format(this.linjection.get(i));
                if (i < this.linjection.size() - 1) {
                    ss[0] += ",";
                }
                i++;
            }
            ss[0] += "}";
            ss[1] = "{";
            i = 0;
            while (i < this.lrappel.size()) {
                ss[1] += dateFormat.format(this.lrappel.get(i));
                if (i < this.lrappel.size() - 1) {
                    ss[1] += ",";
                }
                i++;
            }
            ss[1] += "}";
            return ss;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     String ss[] = this.listInString();
     
            String req = "INSERT INTO public.\"Vaccin\" VALUES (default, '" + this.nombre.toString() + "', '" + ss[0] +"', '" + ss[1] + "') RETURNING \"idVaccin\";";
            bd.r = bd.s.executeQuery(req);

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 64
    Par défaut
    c'est certaine pas la meilleure méthode mais à défaut d'aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    bd.r = bd.s.executeQuery(req);
            int j = 0;
            while (j == 0 && bd.r.next()) {
                System.out.println("Vaccin/constructeur");
                this.nombre = TypeVaccin.valueOf(bd.r.getString("nombre"));
                this.di = bd.r.getArray("injeccion");
                this.dr = bd.r.getArray("rappel");
                j++;
            }
            bd.disconnect();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String inj = di.toString();
            char ci[] = inj.toCharArray();
            inj = "";
            for(int i = 1; i<ci.length-2; i++){
                inj += ci[i];
            }
            String injec[] = inj.split(",");
            int i = 0;
            while (i < injec.length) {
                this.linjection.add(dateFormat.parse(injec[i]));
                i++;
            }
            String rap = dr.toString();
            char cr[] = rap.toCharArray();
            rap = "";
            for(i = 1; i<cr.length-2; i++){
                rap += cr[i];
            }
            String rappel[] = rap.split(",");
            i = 0;
            while (i < rappel.length) {
                this.lrappel.add(dateFormat.parse(rappel[i]));
                i++;
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau de date
    Par MasterChief78 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 13/05/2008, 17h07
  2. [MySQL] Séparation de tableau par date
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 25/03/2008, 13h54
  3. [Dates] Tableau de date mensuel
    Par Eyog74 dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2007, 09h24
  4. [ASP.NET 2.0 C#] Tableau et date
    Par onizuka159 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 13/06/2007, 11h00
  5. [Tableaux] tri tableau avec date
    Par omelhor dans le forum Langage
    Réponses: 12
    Dernier message: 17/10/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo