我正在使用Informix的JDBC驱动程序。我连接到我的主机就好了,但是当执行查询时,我的select中指定的一个字段会返回一个空值。而不只是检索该值,并抛出SQLException:
在查询的任何表中找不到列(colname)(或SLV未定义)。
我正在以这种方式使用驱动程序:
try{
PreparedStatement pstmtDist = conn.prepareStatement(query2);
ResultSet rsDist = pstmtDist.executeQuery();
while(rsDist.next()){
int distCaseId = 0;
String distCaseIdStr = new String();
int distCaseDefNum = 0;
String distCaseDefNumStr = new String();
distCaseIdStr = rsDist.getObject("colname").toString();
distCaseId = Integer.parseInt(distCaseIdStr.trim());
distCaseDefNumStr = rsDist.getObject("colname2").toString();
distCaseDefNum = Integer.parseInt(distCaseDefNumStr.trim());
//System.out.println(String.format("distCaseId == %d distCaseDefNum == %d\n",distCaseId,distCaseDefNum));
}// end while district cases
rsDist.close();
pstmtDist.close();
connDist.close();
}
catch (SQLException e){
System.out.println("EXCEPTION: "+e.getMessage());
}
欢迎任何提示!
-TU
答案 0 :(得分:0)
我认为问题符合要求:
distCaseDefNumStr = rsDist.getObject("colname2").toString();
以及getObject()
可以返回null
的类似行。
如果colname2
的值为null
,则getObject()
返回null
,然后Java尝试在toString()
对象上运行null
方法。< / p>
是的,关于在结果中找不到列的消息很奇怪,但我认为您确实观察到空指针异常。使用getString()
的{{1}}或getInt()
方法。