Spring batch 定制spring批处理项目平面编写器
我有一个可以创建平面文件的spring批处理程序,但我希望能够将标签放到字段中 这是我的Pojo示例学生Spring batch 定制spring批处理项目平面编写器,spring-batch,Spring Batch,我有一个可以创建平面文件的spring批处理程序,但我希望能够将标签放到字段中 这是我的Pojo示例学生 public class Student{ private String studentName; private double gpa; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studen
public class Student{
private String studentName;
private double gpa;
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public double getGpa() {
return dob;
}
public void setGpa(double gpa) {
this.gpa= gpa;
}
这是我的划行器
public class StudentRowMapper implements RowMapper<Student>{
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student= new Student();
student.setStudentName(rs.getString("student_name"));
student.setGpa(rs.getDouble("gpa"));
return student;
}
我希望能够将coustme前缀添加到每个字段,我希望能够编写一个平面文件,其中
name=Rita Paul|gpa=3.8|
name=Han Yanagata|gpa=3.0|
在行映射器中,您可以通过
public class StudentRowMapper implements RowMapper<Student>{
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student= new Student();
student.setStudentName("name="+rs.getString("student_name"));
student.setGpa("gpa="+rs.getDouble("gpa"));
return student;
}
公共类StudentRowMapper实现了RowMapper{
@凌驾
public Student mapRow(结果集rs,int rowNum)引发SQLException{
学生=新生();
student.setStudentName(“name=“+rs.getString(“student_name”));
student.setGpa(“gpa=“+rs.getDouble(“gpa”));
留学生;
}
编写一个定制的线性聚合器
,这很简单。GPA是一个双精度的,你不能只加上“GPA=”无论如何,你要把它写进文件中。所以学生的所有成员变量都可以作为字符串变量。我觉得问题是,如果以后我想应用业务逻辑,比如说添加一个项目处理器来过滤低于3.0的GPA,我将无法提取。然后在处理完成后将其添加到处理器级别或者您可以编写自己的FlatFilewriter,或者正如Luca Basso Ricci所说的,您可以编写自己的自定义行聚合器。
name=Rita Paul|gpa=3.8|
name=Han Yanagata|gpa=3.0|
public class StudentRowMapper implements RowMapper<Student>{
@Override
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student= new Student();
student.setStudentName("name="+rs.getString("student_name"));
student.setGpa("gpa="+rs.getDouble("gpa"));
return student;
}