Mapping champs de fichiers csv avec champs de la table de bdd
kariel1
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je suis en train de développer une application qui permet d'importer un fichier format .csv, le lire et enregistrer ses données dans une base de données MySQL.
Je travaille avec Hibernate, struts2, et spring.
Mon problème est le suivant:
comment faire le mapping entre les champs du fichier (par exemple firstName, lastName, dateOfBirth) et les champs de la table de la base de données (par exemple Nom, Prenom, DateDeNaissance).
Des idées pour commencer?
Merci d'avance.
je suis en train de développer une application qui permet d'importer un fichier format .csv, le lire et enregistrer ses données dans une base de données MySQL.
Je travaille avec Hibernate, struts2, et spring.
Mon problème est le suivant:
comment faire le mapping entre les champs du fichier (par exemple firstName, lastName, dateOfBirth) et les champs de la table de la base de données (par exemple Nom, Prenom, DateDeNaissance).
Des idées pour commencer?
Merci d'avance.
A voir également:
- Columnpositionmappingstrategy
- Table ascii - Guide
- Table des matières word - Guide
- Comment réduire la taille d'un fichier - Guide
- Explorateur de fichiers - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
2 réponses
En cherchant un peu, j'ai tombé sur la openCSV, je l'ai utilisé pour la lecture du fichier, et j'ai compris que je peux faire le mapping avec les classes : CsvToBean et ColumnPositionMappingStrategy.
des idées ou exemples d'utilisation de ces classes.
Merci :)
des idées ou exemples d'utilisation de ces classes.
Merci :)
Bonjour,
Il n'y a pas de INSERT en JPA, donc pas en Hibernate non plus (sauf si les données proviennent d'une autre table mais ce n'est pas ton cas).
Par contre tu peux le faire avec Spring, mais dans ce cas fait toutes tes bases de données en Spring, et Hibernate ne sert plus à rien... car pour être cohérent il ne faut pas mélanger deux framework pour faire la même brique (ici la DAO).
Ici je pense que le mieux est de faire une requête native avec Hibernate, mais il faut bien garder à l'esprit que c'est une utilisation contraire à l'esprit du framework qui n'est censé faire que de la récupération de données, pas de la création.
Il n'y a pas de INSERT en JPA, donc pas en Hibernate non plus (sauf si les données proviennent d'une autre table mais ce n'est pas ton cas).
Par contre tu peux le faire avec Spring, mais dans ce cas fait toutes tes bases de données en Spring, et Hibernate ne sert plus à rien... car pour être cohérent il ne faut pas mélanger deux framework pour faire la même brique (ici la DAO).
Ici je pense que le mieux est de faire une requête native avec Hibernate, mais il faut bien garder à l'esprit que c'est une utilisation contraire à l'esprit du framework qui n'est censé faire que de la récupération de données, pas de la création.
EntityManager em; Query query = em.createNativeQuery("INSERT INTO " +" Personne (Nom, Prenom, DateDeNaissance) " +" VALUES (?, ?, ?);"); query.setParameter(1, person.getLastName()); query.setParameter(2, person.getFirstName()); query.setParameter(3, person.getDateOfBirth()); int n = query.executeUpdate();