Java 使用SQL数据库中的字符串时出现NullPointerException
我试图使用从SQL数据库中的行读取的字符串,但当我这样做时,我得到以下NullPointerException:Java 使用SQL数据库中的字符串时出现NullPointerException,java,sql,database,string,nullpointerexception,Java,Sql,Database,String,Nullpointerexception,我试图使用从SQL数据库中的行读取的字符串,但当我这样做时,我得到以下NullPointerException: Exception in thread "main" java.lang.NullPointerException at ReadCol.data(ReadCol.java:37) at ReadCol.main(ReadCol.java:50) if(rs.getString(1).equals(array[0]) && rs.getStr
Exception in thread "main" java.lang.NullPointerException
at ReadCol.data(ReadCol.java:37)
at ReadCol.main(ReadCol.java:50)
if(rs.getString(1).equals(array[0]) &&
rs.getString(7).equals(array[6])){
我的代码如下所示
public String[] array;
ResultSet rs=st.executeQuery("select * from ATTENDANCE");
while(rs.next()){
File file = new File("E:\\eclipse\\workspace\\AutoAttendanceSystem\\res\\AttendanceData.csv");
List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
for (String line : lines) {
array = line.split(",");
// This is line 37 :
if(rs.getString(1).equals(array[0]) && rs.getString(7).equals(array[6])){
JOptionPane.showMessageDialog(null, "Can't Update Because record already exist");
}
}
下面是该表中一行的示例:
Sun 2016.08.14 at 11:21:43 PM PDT, null, null, Thu 2016.08.18 at 01:58:34 AM PDT, null, Thu 2016.08.18 at 02:13:26 AM PDT, null
有什么问题吗?发生了什么事
问题似乎是在调用rs.getString(7).equals(…)
或rs.getString(1).equals
:这意味着getString
返回了null
发生这种情况有两个原因:
- (鉴于您的SQL表结构,这里的情况似乎不是这样)
getString
返回NULL
,这就是在NULL
上调用equals
会引发异常的原因- 有关
返回值的信息:ResultSet.getString
Exception in thread "main" java.lang.NullPointerException
at ReadCol.data(ReadCol.java:37)
at ReadCol.main(ReadCol.java:50)
if(rs.getString(1).equals(array[0]) &&
rs.getString(7).equals(array[6])){
如果您的数据库可以保存空值,那么您应该做的是在应用equals
之前对其进行测试:
if( ( rs.getString(1) == null && array[0] == null
|| rs.getString(1) != null && rs.getString(1).equals(array[0]) )
&& ... // same for 7th column
旁注
字符串何时等于数组?!什么数组?什么是
rs
和什么是array
你能给我们看一下所有的代码吗?请发布你最好的尝试。对不起。。。我现在已经更新了代码。@Mee请提供一个,并特别注意“完整”和“可验证”。在数组[6]中,数据是这样的Sun 2016.08.14在11:21:43 PM PDT null null-null-Thu 2016.08.18在01:58:34 AM PDT null-Thu 2016.08.18在02:13:26 AM PDT
它也包含null
。。。。是否因为此null
而发生异常?不客气。我添加了一些关于如何使代码更容易理解的细节