Mappage de CSV à JavaBeans à l'aide d'OpenCSV
Les fichiers CSV sont essentiellement des fichiers de texte brut qui stockent les données dans des colonnes séparées par des virgules. OpenCSV est la bibliothèque permettant d'analyser ces fichiers CSV, autrement difficiles à traiter. C'est une bibliothèque très simple à utiliser qui prend en charge plusieurs fonctions telles que la lecture et l'écriture de fichiers CSV avec des en-têtes.
Dans cet article, nous discuterons du processus de mappage des fichiers CSV vers JavaBeans via OpenCSV. De plus, OpenCSV est un outil utile dans ce processus.
Mapper CSV vers JavaBean
La bibliothèque OpenCSV fournit des classes et des stratégies de mappage pour mapper les fichiers CSV aux Java Beans. L'une des classes est CSVToBean, qui est utilisée pour mapper des fichiers CSV sur JavaBeans. Pour analyser ces fichiers CSV, la classe CSVToBean a besoin d'une stratégie de mappage définie et transmise à la classe CSVToBean. L'une des stratégies de mappage les plus populaires est HeaderColumnNameTranslateMappingStrategy, qui mappe les ID de colonne aux propriétés du bean Java.
Grammaire
Le mappage du fichier CSV vers le Bean s'effectue en une série d'étapes. Cependant, la syntaxe pour créer un HashMap avec un mappage entre les ID de colonnes et les propriétés de poutre est la suivante :
HashMap map = new HashMap(); map.put("column_id", "bean_property");
Tout d'abord, nous créons un hashmap, puis utilisons la fonction put() de HashMap pour mapper l'identifiant de colonne avec la propriété du bean Java correspondante.
Algorithme
Étape 1 - Commencez par ajouter OpenCSV à votre projet Java en utilisant les dépendances suivantes.
Pour les projets Maven, ajoutez les dépendances suivantes au projet java -
<dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>4.1</version> </dependency>
Pour un projet Gradle, vous devez ajouter les dépendances suivantes -
compile group: 'com.opencsv', name: 'opencsv', version: '4.1'
Étape 2 - Commençons maintenant par les étapes de base du mappage d'un fichier csv à un bean Java.
Étape 3 - Créez un HashMap avec mappage entre les ID de colonne et les propriétés du bean.
Étape 4 - Ajoutez tous les identifiants de colonnes du fichier csv correspondant aux propriétés du bean.
Étape 5 - Créez un objet HeaderColumnNameTranslateMappingStrategy.
Étape 6 - Maintenant, transmettez le hashmap mappé à la méthode setColumnMapping().
Étape 7 - Appelez les objets des classes CSVToBean et CSVReader.
Étape 8 - Maintenant, nous allons appeler la méthode d'analyse de la classe CSVToBean et lui transmettre l'objet HeaderColumnNameTranslateMappingStrategy et CSVReader.
Étape 9 - Imprimez les détails de l'objet Bean.
Méthode
Maintenant, mappons le contenu du fichier Employee.csv sur JavaBeans à l'aide d'OpenCSV. Le fichier Employee.csv contient des données telles que le nom de l'employé, le service et le salaire.
Le contenu du fichier Employee.csv est le suivant :
Employee_Name, Department, Salary Naman, Human Resource, 45000 Nikita, Sales, 35000 Rocky, IT, 50000 Raman, Human Resource, 42000
Maintenant, créons d'abord la classe Employee, puis créons la méthode principale qui mappe le contenu de ce fichier csv aux JavaBeans.
Exemple : Employee.java
public class Employee { private static final long serialVersionUID = 1L; public String emp_name, department, salary; public String getName() { return emp_name; } public void setName(String n) { emp_name = n; } public String getSalary() { return salary; } public void setSalary(String s) { salary = s; } public String getDepartment() { return department; } public void setDepartment(String d) { d = department; } public String toString() { return "Employee [Name=" + emp_name + ", Department= " + department +", Salary = " + salary+ "]"; } }
Ce qui suit est le code de programme du fichier CsvToBean.java.
Exemple
import java.util.*; import com.opencsv.CSVReader; import com.opencsv.bean.CsvToBean; import com.opencsv.bean.HeaderColumnNameTranslateMappingStrategy; public class csvtobean { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("Employee_Name", "emp_name"); map.put("Department", "department"); map.put("Salary", "salary"); HeaderColumnNameTranslateMappingStrategy<Employee> s = new HeaderColumnNameTranslateMappingStrategy<>(); s.setType(Employee.class); s.setColumnMapping(map); CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader ("D:\CSVFiles\Employee.csv")); } catch (FileNotFoundException e) { e.printStackTrace(); } CsvToBean csvToBean = new CsvToBean(); List<Employee> l = csvToBean.parse(s, csvReader); for (Employee x : l) { System.out.println(x); } } }
Sortie
Employee [Name=Naman, Department=Human Resource, Salary=45000] Employee [Name=Nikita, Department=Sales, Salary=35000] Employee [Name=Rocky, Department=IT, Salary=50000] Employee [Name=Raman, Department=Human Resource, Salary=42000]
Comme vous pouvez le voir dans le code du programme ci-dessus, nous créons d'abord une carte de hachage mappant les ID de colonne avec les propriétés du bean correspondantes. Nous avons ensuite implémenté la stratégie HeaderColumnNameTranslateMappingStrategy pour la classe Employee et l'avons transmise à la méthode d'analyse de la classe CsvToBean pour mapper le CSV à JavaBean à l'aide d'OpenCSV.
Conclusion
Dans cet article, nous avons vu comment mapper des fichiers CSV vers des JavaBeans à l'aide d'OpenCSV. La technique simple évoquée pour ce faire consiste à utiliser la classe CsvToBean et une stratégie de mappage pour les objets transmis à la classe CsvToBean. Nous avons discuté des étapes et du code du programme pour analyser les données des employés au format CSV dans JavaBeans à l'aide d'OpenCSV.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dépannage et solutions au logiciel de sécurité de l'entreprise qui fait que certaines applications ne fonctionnent pas correctement. De nombreuses entreprises déploieront des logiciels de sécurité afin d'assurer la sécurité des réseaux internes. ...

Lorsque vous utilisez MyBatis-Plus ou d'autres cadres ORM pour les opérations de base de données, il est souvent nécessaire de construire des conditions de requête en fonction du nom d'attribut de la classe d'entité. Si vous manuellement à chaque fois ...

Le traitement de la cartographie des champs dans l'amarrage du système rencontre souvent un problème difficile lors de l'exécution d'amarrage du système: comment cartographier efficacement les champs d'interface du système a ...

Commencez le printemps à l'aide de la version IntelliJideaultimate ...

Solutions pour convertir les noms en nombres pour implémenter le tri dans de nombreux scénarios d'applications, les utilisateurs peuvent avoir besoin de trier en groupe, en particulier en un ...

Conversion des objets et des tableaux Java: Discussion approfondie des risques et des méthodes correctes de la conversion de type de distribution De nombreux débutants Java rencontreront la conversion d'un objet en un tableau ...

Comment convertir les noms en nombres pour implémenter le tri au sein des groupes? Lors du tri des utilisateurs en groupes, il est souvent nécessaire de convertir le nom de l'utilisateur en numéros afin qu'il puisse être différent ...

Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...
