我有一个excel文件,其中管道分隔的数据存储在第一列A中。第一行具有不需要的日期,最后一行具有我要与之比较的行数。我试图解析每行中的前三个项目(account_name,command_name,system_name),我编写了用于解析文件的类和代码,但需要帮助来设置如何创建将sql插入表中的服务。下面是该文件的示例以及它的外观。
20200310|
Mn1223|01192|windows|extra|extra|extra||
Sd1223|02390|linux|extra|extra|extra||
2
CLASS
class DataToInsert {
private final String accountName;
private final String commandName;
private final String accouomain;
public DataToInsert(String accountName, String accountNumber, String systemName) {
this.accountName = accountName;
this.commandName = commandName;
this.systemName = systemName;
}
public String getAccountName() {
return accountName;
}
public String getCommandName() {
return commandName;
}
public String getSystemName() {
return systemName;
}
}
代码解析文件
List<DataToInsert> parseData(String filePath) throws IOException {
List<String> lines = Files.readAllLines(Paths.get(filePath));
// remove date and amount
lines.remove(0);
lines.remove(lines.size() - 1);
return lines.stream()
.map(s -> s.split("[|]")).map(val -> new DataToInsert(val[0], val[1], val[2])).collect(Collectors.toList());
}
我相信您想要的是对象关系映射(ORM)。我建议您检出JPA及其类似Hibernate的实现。但是,您可以使用常规的JDBC实现目标,但是为什么要在已有目的实现这一目的时重新发明轮子。