File structure 我有一个平面文件,它有两种类型的数据。比如我有一个逗号分隔的文件,其中包含学生的信息。有多个文件,如A班学生,B班学生等。
文件中的数据就像第一行有班级信息,其余的都有学生信息。所以我想把班级信息放到班级表和学生信息到学生表。
第一行始终是HeaderDataDAO类型,所有其他行都是StudentDataDAO。
我怎样才能做到这一点?
我的文件结构 类-A * 10 * 2013-14 1 *石*巴雷特* 1964年10月19日 2 *阿曼*石* 1973年2月4日**** 3·阿曼多·洛根* 1986年12月25日 4 *拉蒂法·巴尼特* 1959年7月24日 5 *卡桑德拉·摩西·1956年9月14日********* 6个* *奥德拉霍普金斯* 1984年8月30日 7 *厄普顿·莫罗* 1973年2月4日 8 *梅洛迪·贝拉斯克斯·1953年4月26日 9 *西比尔·诺兰* 1951年6月24日***** 10 * * Glenna小* 1953年8月27日
StudentDataDAO.java
公共类StudentDataDAO {
private long id;
private String firstName;
private String lastName;
private Date birthDate;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) throws ParseException {
if (!birthDate.equalsIgnoreCase("")) {
SimpleDateFormat spf = new SimpleDateFormat("yyyy-MM-dd");
this.birthDate = spf.parse(birthDate);
} else {
this.birthDate = null;
}
}
@Override
public String toString() {
return "CustomerData [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", birthDate=" + birthDate
+ "]";
}
}
HeaderDataDAO.java
公共类HeaderDataDAO {
private String className;
private String numberOfStudent;
private String batch;
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getNumberOfStudent() {
return numberOfStudent;
}
public void setNumberOfStudent(String numberOfStudent) {
this.numberOfStudent = numberOfStudent;
}
public String getBatch() {
return batch;
}
public void setBatch(String batch) {
this.batch = batch;
}
@Override
public String toString() {
return "HeaderData [className=" + className + ", numberOfStudent=" + numberOfStudent + ", batch=" + batch + "]";
}
}
答案 0 :(得分:0)
您可以使用下面的CompositeItemWriter
示例配置
<bean id="compositeWriter"
class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<ref bean="classWriter" />
<ref bean="studentWriter" />
</list>
</property>
</bean>
答案 1 :(得分:0)
使用CompositeItemWriter。在此处查找示例:https://github.com/spring-projects/spring-batch/blob/master/spring-batch-samples/src/main/resources/jobs/compositeItemWriterSampleJob.xml http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.batch/spring-batch-samples/1.0.1.RELEASE/jobs/compositeItemWriterSampleJob.xml