嗨即时尝试跟踪我的Apache POI读取Excel文件导入到数据库。我坚持导入进度(%进度,时间等)到数据库中的一个单独的表,所以我可以查询数据导入进度。读取Apache POI文件并坚持通过JPA,但坚持实体不会发生,直到方法结束
我的问题是,实体管理器只保留一次“进度”状态,这是在将数据加载到数据库的方法的末尾。
爪哇
@Inject
private EntityManager em;
public void importTheData(String path){
try
{
FileInputStream file = new FileInputStream(path);
wb = WorkbookFactory.create(file);
} catch (Exception ex) {}
Sheet sheet = wb.getSheetAt(0);
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
try {
row = sheet.getRow(i);
Table theTable = new Table();
theTable.setDate(row.getCell(0).getDateCellValue());
theTable.setDate1(row.getCell(1).getDateCellValue());
theTable.setDate2(row.getCell(2).getDateCellValue());
bdt.add(theTable);
}
public void importtheTable() {
for(int i=0; i<bdt.size();i++)
{
em.persist(bdt.get(i));
if(i%2000 == 0){
em.flush();
em.clear();
}
}
}
方法setProgress(路径,(100 * I/theTable.getLastRowNum()))尝试的进展状态持续到一个单独的表,但是这仅发生一次(在结束)
任何人都可以帮我吗?
感谢
excel文件中有多少条记录? –
30000条记录在Excel表 – user1694873