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

Persistance des données Java Discussion :

[Debutant] Methodes de persistance des données ?


Sujet :

Persistance des données Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 126
    Points : 105
    Points
    105
    Par défaut [Debutant] Methodes de persistance des données ?
    Bonjour,

    Je debute en JAVA, et j'aimerais me faire la main en développant une petite appli, pour cela je vais avoir besoin de stocker des données.

    Quelle est la meilleur methode ? HSQLDB, JPA, XML ?
    J'avoue que je lis un peu de tout et de rien sur ces methodes, et je suis un peu perdu..

    Par exemple, l'idéal serait au début de l'appli, de lire un fichier et de le monter en mémoire.
    Et à la fin qu'il stocke la memoire dans un fichier.

    Merci de votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si tu débute mieux vaut peut-être laisser la persistance de côté, te consacrer uniquement au Java et après voir la multitude de choses passionnantes qui sont à côté..

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonsoir Hesiode je ne connais pas grand chose sur la persistance en java par contre j'ai déjà utilisé la serialisation des données dans certaine des mes applications. Je pense que cela peut aussi être une piste.

    Voici un petit exemple. (J'ai utilisé NetBeans 5.5.1)

    Class Variables
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    /*
     * Variables.java
     *
     * Created on 17 janvier 2008, 20:56
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package aidehesiode;
     
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.ArrayList;
     
    /**
     *
     * @author Finance Sébastien
     */
    public class Variables implements Serializable {
        private int valInt = 0;
        private String valString = null;
        private ArrayList sauvegardeVariables;
        /** Creates a new instance of Variables */
        public Variables() {
            sauvegardeVariables = new ArrayList();
        }
     
        public int getValInt() {
            return valInt;
        }
     
        public void setValInt(int valInt) {
            this.valInt = valInt;
        }
     
        public String getValString() {
            return valString;
        }
     
        public void setValString(String valString) {
            this.valString = valString;
        }
     
        public Exception saveBase(String nomFichier){
            //J'utilise une ArrayList c'est plus commode pour la sauvegarde.
            sauvegardeVariables.clear();
            sauvegardeVariables.add(valInt);
            sauvegardeVariables.add(valString);
     
            try
            {
                /* Ouverture et ecriture du fichier de sauvegarde */
                FileOutputStream fileOutput = new FileOutputStream(nomFichier);
                // creation du flux
                ObjectOutputStream output = new ObjectOutputStream(fileOutput);
                // ecriture
                output.writeObject(sauvegardeVariables);
                output.flush();
                output.close();
            }
            catch(IOException e)
            {
                return(e);
            }
            return(null);
        }
     
        public Exception openBase(String nomFichier){
            try{
                // Definition du fichier de lecture et du flux
                FileInputStream fileInput = new FileInputStream(nomFichier);
                ObjectInputStream input = new ObjectInputStream(fileInput);
     
                // recuperation de l'ArrayList de sauvegarde
                sauvegardeVariables = (ArrayList) input.readObject();
                input.close();
            }
            catch(ClassNotFoundException e1){
                return(e1);
            }
            catch(IOException e2){
                return(e2);
            }
            //Je charge les variables depuis l'ArrayList
            valInt = (Integer)sauvegardeVariables.get(0);
            valString = (String)sauvegardeVariables.get(1);
            return(null);
     
        }
    }
    Class Main
    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
    36
     
    /*
     * Main.java
     *
     * Created on 16 janvier 2008, 22:11
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package aidehesiode;
     
     
    /**
     *
     * @author Finance Sébastien
     */
    public class Main {
        private static Variables variables;
        private static Fenetre fenetre;
        /** Creates a new instance of Main */
        public Main() {
     
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            variables  = new Variables();
            fenetre = new Fenetre(variables);
            fenetre.setVisible(true);
        }
     
    }
    Class Fenetre
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    /*
     * Fenetre.java
     *
     * Created on 17 janvier 2008, 21:14
     */
     
    package aidehesiode;
     
    /**
     *
     * @author  Finance Sébastien
     */
    public class Fenetre extends javax.swing.JFrame {
        private Variables variables;
        /** Creates new form Fenetre */
        public Fenetre(Variables variables) {
            this.variables = variables;
            initComponents();
            //Je charge les variables depuis la sauvegarde.
            variables.openBase("sauvegarde");
            txtInt.setText(String.valueOf(variables.getValInt()));
            txtString.setText(variables.getValString());
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
        private void initComponents() {
            lblInt = new javax.swing.JLabel();
            txtInt = new javax.swing.JTextField();
            txtString = new javax.swing.JTextField();
            lblString = new javax.swing.JLabel();
            btnQuitter = new javax.swing.JButton();
     
            getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            lblInt.setText("(int)");
            getContentPane().add(lblInt, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, -1, -1));
     
            getContentPane().add(txtInt, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 30, 260, -1));
     
            getContentPane().add(txtString, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 60, 260, -1));
     
            lblString.setText("(String)");
            getContentPane().add(lblString, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 60, -1, -1));
     
            btnQuitter.setText("Quitter");
            btnQuitter.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    btnQuitterActionPerformed(evt);
                }
            });
     
            getContentPane().add(btnQuitter, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 120, -1, -1));
     
            pack();
        }// </editor-fold>                        
     
        private void btnQuitterActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:
            variables.setValInt(Integer.parseInt(txtInt.getText()));
            variables.setValString(txtString.getText());
            //Je sauvegarde les variables.
            variables.saveBase("sauvegarde");
            //Je quitte le programme
            dispose();
        }                                          
     
        // Variables declaration - do not modify                     
        private javax.swing.JButton btnQuitter;
        private javax.swing.JLabel lblInt;
        private javax.swing.JLabel lblString;
        private javax.swing.JTextField txtInt;
        private javax.swing.JTextField txtString;
        // End of variables declaration                   
     
    }
    L'archive si jointe contient l'executable de l'application.
    L'archive contient déjà un fichier "sauvegarde" pour ne pas faire planté l'appli
    Le 1er champ attend un entier, le 2e champ attend un String.

    Amicalement Sébastien
    Fichiers attachés Fichiers attachés

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 29
    Points : 27
    Points
    27
    Par défaut Java persistance
    Pour débuter, il vaut mieux d'abord se consacrer au langage en tant que tel sans utiliser quoi que ce soit autour. Il faut aussi intégrer le concept objet dans cette démarche. Ensuite, si cette partie est comprise, il faut voir plus loin.
    Avant d'analyser la persistance des données, il faut peut être partir de l'analyse du fonctionnement des bases de données pour ne pas s'égarer et réinventer des mécanismes existants (JDBC).
    Ensuite, le couplage des deux entités (objets et données) peut se faire par la persistance et par des outils comme Hibernate, JPA, TopLink, etc ...

    Je te souhaite de grands moments de plaisir et pleins de développements heureux en JAVA.

    Bon courage.
    Merci beaucoup!

Discussions similaires

  1. [Debutant] Conception du traitement des données
    Par badack dans le forum JDBC
    Réponses: 6
    Dernier message: 04/01/2007, 15h13
  2. Réponses: 22
    Dernier message: 05/07/2006, 15h21
  3. [Debutant] comment faire passer des donnée ???
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/01/2006, 22h28
  4. Persistance des données en mémoire
    Par giviz dans le forum Architecture
    Réponses: 13
    Dernier message: 21/12/2004, 09h44
  5. [Strategie]persistance des données
    Par altropus dans le forum Persistance des données
    Réponses: 6
    Dernier message: 04/11/2004, 04h36

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