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.
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.
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.
É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.
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.
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.
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); } } }
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.
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!