我想从CSV文件中读取每一行,并将它们与存储在Oracle中的数据库进行比较。因此,用户可以上传csv文件,文件中的每一行都应该用我的数据库控制,如果有一条记录具有相同的内容,则该记录应存储在列表中。
所以我的上传效果很好,比较也开始了,但几秒钟后我的IDE就停止了工作,没有任何错误或类似的错误。我还将堆空间增加到1024M,但仍然遇到同样的问题。
这是我的代码:
InputStream input = event.getUploadedFile().getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
String line = null;
Query csvVergleich = em.createQuery("SELECT c.vorname FROM CSV c WHERE c.nachname = :nachname AND c.geburtsdatum = :geburtsdatum");
long davor = System.currentTimeMillis();
StringBuffer buffer = new StringBuffer();
List<String> listeCsv;
int nummer = 0;
while((line = in.readLine()) != null)
{
String[] zeile = line.split(";");
//csvVergleich.setParameter("vorname", zeile[1]);
csvVergleich.setParameter("nachname", zeile[2]);
csvVergleich.setParameter("geburtsdatum", zeile[4]);
listeCsv = csvVergleich.getResultList();
if(listeCsv.size() > 0)
{
nummer++;
System.out.println("Gefunden: ");
System.out.println(listeCsv.toString());
}
else{
System.out.println("Keine Übereinstimmung");
}
}
input.close();
long danach = System.currentTimeMillis();
System.out.println("Gesamtdauer: " + (danach - davor / 1000) + ".sek");
System.out.println(nummer);
[...]
所以我从来没有在最后看到两个System.out
。