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

API standards et tierces Java Discussion :

Création fichier CSV Java et importation d'une BDD


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut Création fichier CSV Java et importation d'une BDD
    Bonjour a vous,

    Je pense que c'est dans ce forum que je dois mettre ma demande, si ce n'est pas ici dite moi ou il faudrait le mettre.

    Actuellement je suis en train de développé un projet sous netbeans, je dois faire une purge d'une base de données sous microsoft access 2010.

    En clair je vais faire trois méthodes, une première qui permet de sélectionné le mois a purger, la deuxième qui créé le fichier csv du mois a purger la dernière qui supprime. J'utilise le main pour test mes méthodes et un autre fichier ou il y a toute mes méthodes. Je vous met mon code des deux méthodes que j'ai faite déjà (sélection et suppression ) il me reste a faire la création du fichier CSV.

    J'ai commencé a chercher pour sauvegarde et les bouts de code tester ne marcher 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
    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
     
     //méthode permettant de nettoyé la base de données 
        public void PurgerMois(String date) throws SQLException 
        {
                    // declaration des dates  pour la purges
    		String datefin = date;
    		//isole le mois du format date
    		String[] partieComplet = datefin.split(" ");
                    String[] partieDate = partieComplet[0].split("-");
    		//convertie la chaine de caractere en entier
    		int mois = Integer.parseInt(partieDate[1]);
    		//increment du mois
    		mois = mois + 1;
    		//convertie l'entier en chaîne de caractere
    		String month = Integer.toString(mois);               
    		//Mise au format date de la BDD
    		if (month.length() != 2)
    		{
    		month = "0"+month+"";
     
    		//appel de la méthode de selection du mois
    		}
     
    		//ecrase la chaine datefin avec le mois suivant
    		datefin = ""+partieDate[0]+"-"+month+"-"+partieDate[2]+"";
    		SelectionMoisPurge(date, datefin);
                    //appel de la méthode permettant d'enregistrer le mois qui va être purger
                    EnregistrerMoisPurge(date);
     
            // requete delete permettant la suppression des enregistrements avant une date donné
    	String queryDelete = "DELETE FROM T_COLLECTE WHERE DATE_HEURE  BETWEEN  #"+date+"# AND #"+datefin+"#";
            //execution de la requete delete de purge
            mabdd.RequeteDelete(queryDelete);
            System.out.println("purge du "+date+" ok");
     
        }  
     
        // méthode pour selectionner le mois a purger
        public void SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
     
        }
     
        //méthode pour enregistrer le mois a purger dans un fichier csv
       public void EnregistrerMoisPurge(String adressedufichier)
        {
     
     
       }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il faut que tu nous expliques précisément ce qui ne "marche pas" : y'a-t-il une erreur de compilation, d'exécution (laquelle et sur quelle ligne de code exactement), ce que ça fait que ça doit pas faire, ou ne fait pas ce que tu attendrais que ça fasse, etc...

    Bon, de ce que je veux voir en regardant rapidement ton code :
    • Tu te simplifierais la vie en utilisant un SimpleDateFormat pour parser la date, mais bon, ce n'est obligatoire ;
    • Quand tu fais le select, tu récupères son résultat "dans" la classe ResultSet : il va falloir passer d'une manière ou d'une autre ce resultat vers la méthode qui fait la sauvegarde du fichier (soit directement par la classe ResultSet, soit par l'intérmédiaire d'une autre classe (une ArrayList par exemple) ;
    • Accessoirement, utilises des PreparedStatement pour faire des requêtes, ça supprimera certaines erreurs de syntaxe, liées aux types des données (et puis c'est toujours mieux de prendre l'habitude de les utiliser, même pour un exercice basique).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Ce que j'ai vue sur internet:

    Ce code permet de créé un fichier csv il me semble bien; je dois rajouté ce import:
    import au.com.bytecode.opencsv.CSVWriter;

    Mais mon problème il ne le reconnais pas il me dis qu'il n'existe pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');    
    String[] entries = "first#second#third".split("#");
    writer.writeNext(entries);
    writer.close();
    Je rajoute que j'ai un doute la ce code permet d'écrire dans un fichier csv mais il permet pas de le créé, comment fait-on alors? La j'ai vraiment du mal

    -Je vais regardé comment sa marche SimpleDateFormat, après alors, se format marche pour l'instant alors j'essaye de finir pour avoir quelque chose qui fonctionne.

    -Donc pour récupéré mon ResultSet de mon select, il faut que je modifie ma méthode pour que elle renvoie un ResultSet en valeur de retour et que ce ResultSet je le mette en paramètre ou que je l'utilise dans ma méthode de sauvegarde?

    -oui je m'excuse j'ai oublié de les mettre mais je les ai fait, j'ai fait un fichier avec tout ce qui est connexion a la BDD les statement les exécutions des requêtes et autres

    J'explique en quelque terme rapidement.


    J'ai ma classe AccesBDD permet la connexion, la déconnexion et les requêtes (executeQuery,Statement..) sur la BDD. Ensuite j'ai ma classe GestionBDD où la il y a tout le détail de mes méthodes d'insertion.. sur ma base de donnée, j'ai des méthodes d'insertion de sélection et de mise a jour ainsi que le constructeur qui permet la connexion et le "destructeur" qui permet la déconnexion. Et a partir de mon main je fais un appel aux constructeur la méthode que je veux test et destructeur.


    je vous remercie de vous penchez sur mon problème.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fashionsea Voir le message
    Ce code permet de créé un fichier csv il me semble bien; je dois rajouté ce import:
    import au.com.bytecode.opencsv.CSVWriter;

    Mais mon problème il ne le reconnais pas il me dis qu'il n'existe pas.
    Cette classe fait partie d'une bibliothèque, qu'il faut télécharger : il s'agit d'un ou plusieurs jar, qu'il faut ajouter au classpath.

    Citation Envoyé par fashionsea Voir le message
    Je rajoute que j'ai un doute la ce code permet d'écrire dans un fichier csv mais il permet pas de le créé
    Je ne connais pas cette bibliothèque en particulier, mais normalement, elle doit se fondé sur les classes standards de java (Writer, ou OutputStream), qui créént toujours les fichiers dans lesquels elles écrivent...donc pas de souci normalement.

    Citation Envoyé par fashionsea Voir le message
    -Donc pour récupéré mon ResultSet de mon select, il faut que je modifie ma méthode pour que elle renvoie un ResultSet en valeur de retour et que ce ResultSet je le mette en paramètre ou que je l'utilise dans ma méthode de sauvegarde?
    Exactement. Attention, cependant, quand on manipule un ResultSet entre différentes méthodes, selon les cas, il a un état (on "consomme" des enregistrements au fur et à mesure qu'on les lis, on peut(ou il faut) le fermer par close(),...) : c'est pour ça que j'évoquais le passage par un type intermédiaire, telle qu'un ArrayList, mais dans ton cas, passer par le ResultSet est surement suffisant.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Cette classe fait partie d'une bibliothèque, qu'il faut télécharger : il s'agit d'un ou plusieurs jar, qu'il faut ajouter au classpath.
    Je l'ai trouvé cette biblio mais ce n'est pas un fichier jar et c'est un fichier "unix" tout les sites ou je les ai trouvé mon donnés se même fichier au format unix, n'ayant pas de système unix a disposition je peux pas me log dessus pour continuer.

    ( site ou j'ai trouvé mon code pour la sauvegarde du fichier et le téléchargement du fichier (sous unix toujours): http://java.mesexemples.com/fichiers...-fichier-csv/# )


    je peux mettre simplement le ResultSet mais j'ai déja fait une méthode avec un arrayList donc j'ai remis sous le même format, sa devient comme comme ça: (CDataPresse étant un fichier ou je possède tout mes Set et Get)

    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
    public ArrayList SelectionMoisPurge(String date, String datefin) throws SQLException 
        {
     
            //requete select permettant de selectionner les mois non purger
            String querySelect = "SELECT * FROM T_COLLECTE WHERE DATE_HEURE = #"+date+"# ";
            //execution de la requete select
            ResultSet results = mabdd.RequeteSelect(querySelect);
     
            while (results.next())
            {     
                //
                CDataPresse mesEnregistrement = new CDataPresse();
                //NUM étant le numéro de l'enregistrement
                mesEnregistrement.SetNUM(results.getInt("NUM"));
                mesEnregistrement.SetID(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetUnite(results.getInt("ID_PRESSE"));
                mesEnregistrement.SetHeure(results.getString("DATE_HEURE"));
                liste.add(mesEnregistrement);
            } 
     
            //retour de la liste des enregistrements
            return liste;
     
        }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par fashionsea Voir le message
    site ou j'ai trouvé mon code pour la sauvegarde du fichier et le téléchargement du fichier (sous unix toujours): http://java.mesexemples.com/fichiers...-fichier-csv/# )
    C'est juste un fichier tar.gz (et pas un fichier unix, même si effectivement ce format d'archives est plutôt utilisé sur unix) : il te suffit de décompresser ce fichier avec n'importe quel logiciel de dezip, et tu obtiendras un fichier tar, qu'il te suffit de redeziper (je sais plus si le dezippeur natif de l'explorateur windows sait le faire par contre).

    Citation Envoyé par fashionsea Voir le message
    je peux mettre simplement le ResultSet mais j'ai déja fait une méthode avec un arrayList donc j'ai remis sous le même format, sa devient comme comme ça: (CDataPresse étant un fichier ou je possède tout mes Set et Get)
    OK, très bien.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. création fichier CSV à partir une table
    Par neoboy dans le forum Macros Access
    Réponses: 11
    Dernier message: 06/12/2012, 11h17
  2. Réponses: 2
    Dernier message: 20/02/2012, 09h29
  3. Choix du repertoire pour création fichier csv
    Par edenyorke dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/07/2007, 10h45
  4. Création fichier csv
    Par krfa1 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/11/2005, 10h30
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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