Exemple de lot de printemps - Base de données MySQL en XML

Exemple de lot de printemps - Base de données MySQL en XML

Dans ce tutoriel, nous allons vous montrer comment lire des données à partir d'une base de données MySQL, avecJdbcCursorItemReader etJdbcPagingItemReader, et les écrire dans un fichier XML.

Outils et bibliothèques utilisés

  1. Maven 3

  2. Eclipse 4.2

  3. JDK 1.6

  4. Spring Core 3.2.2.RELEASE

  5. Spring OXM 3.2.2.RELEASE

  6. Spring Batch 2.2.0.RELEASE

  7. Pilote Java MySQL 5.1.25

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

1. Structure du répertoire du projet

Passez en revue la structure finale du projet, un projet Maven standard.

spring batch database to xml

2. Base de données

Une table «utilisateurs» contient seulement 5 enregistrements, lisez-la ensuite avec jdbc.

table des utilisateurs

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. Lecteur d'objets

Créez un mappeur de lignes pour mapper les valeurs de la base de données à l'objet «utilisateur».

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;
    }

}

Exemple pour lire les données de la base de données.

job.xml

  
    
    
    
        
    
  

Pour les gros enregistrements, vous pouvez utiliserJdbcPagingItemReader.

job.xml

  
    
    
      
        
        
        
        
        
      
    
    
       
        
       
    
    
    
        
    
  

4. Rédacteur d'articles

Écrivez des données dans un fichier XML.

job.xml

    
        
        
        
    

    
        
            
                
            
        
    

5. Emplois Spring Batch

Un travail pour lire les données de MySQL et les écrire dans un fichier XML.

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



  
  

  
    
    
    
        
    
  

  
    
      
        
      
    
  

  
    
    
    
  

  
    
        
            
        
    
  

resources/spring/batch/config/database.xml



        
    
        
        
        
        
    

    

6. Exécuter

Créez une classe Java et exécutez le travail par lots.

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");

  }

}

Production. Extrait tous les «utilisateurs dont l'âge> 20 ans» dans un fichier XML.

xml/outputs/users.xml


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

Télécharger le code source

Téléchargez-le -SpringBatch-MySQL-XML-Example.zip (22 ko)