使用JDBC驱动程序在遇到NULL值时抛出Informix + SQLException

时间:2013-01-31 22:25:56

标签: jdbc informix sqlexception

我正在使用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

1 个答案:

答案 0 :(得分:0)

我认为问题符合要求:

 distCaseDefNumStr = rsDist.getObject("colname2").toString();

以及getObject()可以返回null的类似行。

如果colname2的值为null,则getObject()返回null,然后Java尝试在toString()对象上运行null方法。< / p>

是的,关于在结果中找不到列的消息很奇怪,但我认为您确实观察到空指针异常。使用getString()的{​​{1}}或getInt()方法。