我正在研究Java程序,其中一个主要要求是上传一个csv文件,该文件将更新数据库。
当我上传一个文件期望第一列值被读取为null时,所有内容似乎都正常工作,而其余列正确填充。
这是我第一次在项目中使用spring,hibernate和maven,所以我在学习的同时学习。它可能很简单,但我已经尝试了我能想到的一切,并且非常感谢一些帮助。
public static List createMembers(CSVReader csvReader) throws Exception{
ColumnPositionMappingStrategy<Member> strategy = new ColumnPositionMappingStrategy <Member>();
strategy.setType(Member.class);
String[] columns = new String[] {"forename","surname","dob","player", "address1","address2","address3","address4","town","county","postcode","mobile","home","work","email","otherInformation"};
strategy.setColumnMapping(columns);
CsvToBean csvToBean = new CsvToBean();
//Set column mapping strategy
List list = csvToBean.parse(strategy, csvReader);
return list;
}
-
public void importCSV() throws Exception {
CSVReader csvReader = new CSVReader(new FileReader(*filename*));
@SuppressWarnings("rawtypes")
List list = XXCsvToObject.createMembers(csvReader);
//logger.info(csvReader);
Session session = this.sessionFactory.getCurrentSession();
for (Object object : list) {
Member member = (Member) object;
session.persist(member);
logger.info(member.toString());
}
}
-
@Table(name="MEMBER")
public class Member{
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String forename;
private String surname;
private String dob;
private String player;
private String address1;
private String address2;
private String address3;
private String address4;
private String town;
private String county;
private String postcode;
private String mobile;
private String home;
private String work;
private String email;
private String otherInformation;
-
Peter Jones 23/02/2010 Y 15 Main street Peckham Peckham London SE15 3AA
331518315 Peter.jones@gmail.com
玛丽琼斯04/06/2002 Y 15主要街道Peckham Peckham伦敦SE15 3AA
576846958 mary.jones@gmail.com
John Jones 10/09/1979 N 15 Main street Peckham Peckham London SE15 3AA
576864694 john.jones@gmail.com