Пример Spring Batch - база данных MySQL в XML

Пример Spring Batch - база данных MySQL в XML

В этом руководстве мы покажем вам, как читать данные из базы данных MySQL с помощьюJdbcCursorItemReader иJdbcPagingItemReader и записывать их в файл XML.

Использованные инструменты и библиотеки

  1. Maven 3

  2. Затмение 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. MySQL Java Driver 5.1.25

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

1. Структура каталога проекта

Просмотрите окончательную структуру проекта, стандартный проект Maven.

spring batch database to xml

2. База данных

Таблица «пользователи», содержит только 5 записей, позже прочитайте ее с помощью jdbc.

таблица пользователей

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. Читатель предмета

Создайте отображение строк для сопоставления значений базы данных с объектом «пользователь».

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

}

Пример для чтения данных из базы данных.

job.xml

  
    
    
    
        
    
  

Для больших записей вы можете использоватьJdbcPagingItemReader.

job.xml

  
    
    
      
        
        
        
        
        
      
    
    
       
        
       
    
    
    
        
    
  

4. Писатель

Записать данные в файл XML.

job.xml

    
        
        
        
    

    
        
            
                
            
        
    

5. Весенние партии рабочих мест

Работа для чтения данных из MySQL и записи в него XML-файла.

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




  
  

  
    
    
    
        
    
  

  
    
      
        
      
    
  

  
    
    
    
  

  
    
        
            
        
    
  

resources/spring/batch/config/database.xml



        
    
        
        
        
        
    

    

6. Запустить его

Создайте класс Java и запустите пакетное задание.

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

  }

}

Выход. Извлекает всех «пользователей с возрастом> 20» в файл XML.

xml/outputs/users.xml



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

Скачать исходный код

Скачать -SpringBatch-MySQL-XML-Example.zip (22 кб)