gpt4 book ai didi

java.lang.parseInt(UnknownSource) 尝试在 JDBC 中解析和插入行时出错

转载 作者:行者123 更新时间:2023-12-01 13:59:35 25 4
gpt4 key购买 nike

我正在尝试从数据中解析信息并使用 JDBC 将其插入到数据库中。但是,在尝试这样做时,我收到 java.lang.parseInt(UnknownSource) 错误。以下是我整理的代码:

public void testAddStation(String r){   
long st = System.currentTimeMillis();
String str = r;
String row[]= str.split(",");
Station s = new Station();
s.setPrimaryID(row[0]);
s.setSecondaryID(row[1]);
s.setStationName(row[2]);
s.setState(row[3]);
s.setCountry(row[4]);
s.setLatitude(Double.parseDouble(row[5]));
s.setLongitude(Double.parseDouble(row[6]));
s.setElevation(Double.parseDouble(row[7]));
s.setMesoNetID(row[8]);
s.setNetworkName(row[9]);
s.setStatus(row[10]);
s.setPrimaryProviderId(Integer.parseInt(row[11]));
s.setPrimaryProvider(row[12]);
s.setSecondaryProviderId(Integer.parseInt(row[13]));
s.setSecondaryProvider(row[14]);
s.setTertiaryProviderId(Integer.parseInt(row[15]));
s.setTertiaryProvider(row[16]);
s.setWims_Id(row[17]);
//System.out.println(s.getStationName());
//System.out.println(s.getPrimaryID());

rep.addStation(s);
N=N+1;
long et = System.currentTimeMillis();
System.out.println("total station created: " + N + "\tinsert per row: "+(et - st));
}

以下是我在控制台窗口中收到的错误消息:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at karki.jdbc.repo.Check.testAddStation(Check.java:40)
at karki.jdbc.repo.CSVFile.readCSV(CSVFile.java:36)
at karki.jdbc.repo.CSVFile.listFiles(CSVFile.java:20)
at karki.jdbc.repo.CSVFile.listStationCSV(CSVFile.java:59)
at karki.jdbc.repo.CSVFile.main(CSVFile.java:82)

任何人都可以阐明我在这里可能做错了什么吗?

最佳答案

您应该检查以确保输入字符串有效,此外,您需要在代码中包含对无效输入数据的检查。异常的相关部分是这样的: java.lang.NumberFormatException: For input string: "" 我无法从脚本本身看出,因为我不知道你的确切行号代码,但下面几行中的 parseInt 调用之一接收的是空字符串 (""),而不是有效的数字输入:

s.setPrimaryProviderId(Integer.parseInt(row[11]));
s.setSecondaryProviderId(Integer.parseInt(row[13]));
s.setTertiaryProviderId(Integer.parseInt(row[15]));

您应该包含这样的检查:

if(!"".equals(row[11])){ //If row[11] is not an empty string
s.setPrimaryProviderId(Integer.parseInt(row[11]));
}
else{
// Handle the case where this part of the data is empty
}

您还应该在 parseDouble 行中包含这些检查。

关于java.lang.parseInt(UnknownSource) 尝试在 JDBC 中解析和插入行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com