Spring Batch-Beispiel - CSV-Datei in MySQL-Datenbank

Spring Batch-Beispiel - CSV-Datei in MySQL-Datenbank

In diesem Tutorial zeigen wir Ihnen, wie Sie einen Spring Batch-Job zum Lesen von Daten aus einer CSV-Datei in eine Datenbank konfigurieren.

Verwendete Tools und Bibliotheken:

  1. Maven 3

  2. Eclipse 4.2

  3. JDK 1.6

  4. Federkern 3.2.2.FREIGABE

  5. Spring Batch 2.2.0.RELEASE

  6. MySQL Java Driver 5.1.25

1. Java-Projekt

Erstellen Sie ein Java-Projekt mit Maven

$ mvn archetype:generate -DgroupId=com.example -DartifactId=SpringBatchExample
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

In Eclipse-Projekt konvertieren und in die Eclipse-IDE importieren.

$ cd SpringBatchExample/
$ mvn eclipse:eclipse

2. Projektabhängigkeiten

Deklariert alle Projektabhängigkeiten inpom.xml.

pom.xml


    4.0.0
    com.example
    SpringBatchExample
    jar
    1.0-SNAPSHOT
    SpringBatchExample
    http://maven.apache.org

    
        1.6
        3.2.2.RELEASE
        2.2.0.RELEASE
        5.1.25
    

    

        
        
            org.springframework
            spring-core
            ${spring.version}
        

        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        

        
        
            org.springframework.batch
            spring-batch-core
            ${spring.batch.version}
        
        
            org.springframework.batch
            spring-batch-infrastructure
            ${spring.batch.version}
        

        
        
            mysql
            mysql-connector-java
            ${mysql.driver.version}
        

    
    
        spring-batch
        
          
            org.apache.maven.plugins
            maven-eclipse-plugin
            2.9
            
                true
                false
            
          
          
            org.apache.maven.plugins
            maven-compiler-plugin
            2.3.2
            
                ${jdk.version}
                ${jdk.version}
            
          
        
    

3. Projektverzeichnisstruktur

Überprüfen Sie die endgültige Projektstruktur.

spring-batch-csv-database-project-structure

4. CSV-Datei

Dies ist die CSV-Datei im Ressourcenordner.

report.csv

Date,Impressions,Clicks,Earning
6/1/13,"139,237",37,227.21
6/2/13,"149,582",55,234.71
6/3/13,"457,425",132,211.48
6/4/13,"466,870",141,298.40
6/5/13,"472,385",194,281.35
......

5. MySQL-Datenbank

Definiert eine "dataSource" -Bohne für die MySQL-Datenbank. Dasjdbc:initialize-database wird verwendet, um die Metadatentabellen automatisch zu erstellen. Spring Batch benötigt es, um die Jobdetails zu speichern.

resources/spring/batch/config/database.xml



  
  
    
    
    
    
  

  

  
  
    
    
  

6. Federbatch-Kerneinstellung

DefiniertjobRepository undjobLauncher.

resources/spring/batch/config/context.xml



  
  
    
    
    
  

  
  

  
    
  

7. Spring Batch-Jobs

Dies ist die Haupt-XML-Datei zum Konfigurieren des Spring-Batch-Jobs. Diesejob-report.xml-Datei definiert einen Job zum Lesen einerreport.csv-Datei, zum Abgleichen mitreport einfachem Pojo und zum Schreiben der Daten in die MySQL-Datenbank.

Lesen Sie den Kommentar, er sollte selbsterklärend sein. Denken Sie übrigens daran, die Tabelle "RAW_REPORT" manuell zu erstellen.

resources/spring/batch/jobs/job-report.xml



  

  
    
      
        
        
      
    
  

  

    
    

    
        
          
          
                
                
            
          
          
                 
                 
              
              
                
              
          

          
      

  

  
    
    
      
            
      
    
    
    
        
    
  

com/example/model/Report.java

package com.example.model;

public class Report {

    private String Date;
    private String Impressions;
    private String Clicks;
    private String Earning;

    //getter and setter methods


}

Note
Ausführliche Erläuterungen finden Sie inSpring batch references.

8. Starte es

Lädt alles und führt esjobLauncher aus. Dies ist der einfachste Weg, um es zu starten und zu testen. Im wirklichen Leben müssen Sie es jedoch möglicherweise mit Scheduler-Frameworks wie Spring Task, Quartz oder System Scheduler wie dem Befehl „cron“ starten (ich werde es Ihnen in den kommenden Tutorials zeigen).

com/example/App.java

package com.example;

import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
  public static void main(String[] args) {

    String[] springConfig  =
        {   "spring/batch/config/database.xml",
            "spring/batch/config/context.xml",
            "spring/batch/jobs/job-report.xml"
        };

    ApplicationContext context =
        new ClassPathXmlApplicationContext(springConfig);

    JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
    Job job = (Job) context.getBean("reportJob");

    try {

        JobExecution execution = jobLauncher.run(job, new JobParameters());
        System.out.println("Exit Status : " + execution.getStatus());

    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("Done");

  }
}

Ausgabe. Die Spring Batch-Metadatentabellen werden erstellt und der Inhalt vonreport.cvs wird in die Datenbanktabelle „RAW_REPORT“ eingefügt.

spring-batch-cvs-database-data

Erledigt.

Quellcode herunterladen

Laden Sie es herunter -SpringBatch-CSV-Database-Example.zip (18 kb)