Spring Batch-Beispiel - MySQL-Datenbank in XML

Beispiel für einen Spring Batch - MySQL-Datenbank in XML

In diesem Tutorial zeigen wir Ihnen, wie Sie Daten aus einer MySQL-Datenbank mitJdbcCursorItemReader undJdbcPagingItemReader lesen und in eine XML-Datei schreiben.

Verwendete Tools und Bibliotheken

  1. Maven 3

  2. Eclipse 4.2

  3. JDK 1.6

  4. Federkern 3.2.2.FREIGABE

  5. Spring OXM 3.2.2.RELEASE

  6. Spring Batch 2.2.0.RELEASE

  7. MySQL Java Driver 5.1.25

P.S This example – MySQL jdbc (reader) – XML (writer).

1. Projektverzeichnisstruktur

Überprüfen Sie die endgültige Projektstruktur, ein Standard-Maven-Projekt.

spring batch database to xml

2. Datenbank

Eine "Benutzer" -Tabelle enthält nur 5 Datensätze und wird später mit jdbc gelesen.

Benutzertabelle

id, user_login, password, age

'1','example','password','30'
'2','user_a','password','25'
'3','user_b','password','10'
'4','user_c','password','25'
'5','user_d','password','40'

3. Item Reader

Erstellen Sie eine Zeilenzuordnung, um Datenbankwerte einem Benutzerobjekt zuzuordnen.

User.java

package com.example;

public class User {

    int id;
    String username;
    String password;
    int age;

    //... getter and setter methods

}

UserRowMapper.java

package com.example;

import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;

public class UserRowMapper implements RowMapper {

    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {

        User user = new User();

        user.setId(rs.getInt("id"));
        user.setUsername(rs.getString("user_login"));
        user.setPassword(rs.getString("user_pass"));
        user.setAge(rs.getInt("age"));

        return user;
    }

}

Beispiel zum Lesen von Daten aus der Datenbank.

job.xml

  
    
    
    
        
    
  

Für große Datensätze können SieJdbcPagingItemReader verwenden.

job.xml

  
    
    
      
        
        
        
        
        
      
    
    
       
        
       
    
    
    
        
    
  

4. Item Writer

Daten in eine XML-Datei schreiben.

job.xml

    
        
        
        
    

    
        
            
                
            
        
    

5. Spring Batch-Jobs

Ein Job, um Daten aus MySQL zu lesen und in eine XML-Datei zu schreiben.

resources/spring/batch/jobs/job-extract-users.xml



  
  

  
    
    
    
        
    
  

  
    
      
        
      
    
  

  
    
    
    
  

  
    
        
            
        
    
  

resources/spring/batch/config/database.xml



        
    
        
        
        
        
    

    

6. Starte es

Erstellen Sie eine Java-Klasse und führen Sie den Batch-Job aus.

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.JobParametersBuilder;
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) {
    App obj = new App();
    obj.run();
  }

  private void run() {

    String[] springConfig = { "spring/batch/jobs/job-extract-users.xml" };

    ApplicationContext context = new ClassPathXmlApplicationContext(springConfig);

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

    try {

        JobParameters param = new JobParametersBuilder().addString("age", "20").toJobParameters();

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

    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("Done");

  }

}

Ausgabe. Extrahiert alle Benutzer mit einem Alter von> 20 Jahren in eine XML-Datei.

xml/outputs/users.xml


    
        1
        example
        password
        30
    
    
        2
        user_a
        password
        25
    
    
        4
        user_c
        password
        25
    
    
        5
        user_d
        password
        40
    

Quellcode herunterladen

Laden Sie es herunter -SpringBatch-MySQL-XML-Example.zip (22 kb)