在java中返回空数组字符串

时间:2011-08-30 05:03:59

标签: java arrays jsp return

我正在使用java类,我正在执行查询并将查询结果分配给字符串数组,最后返回数组。

一切正常。但是如果db值为空(不是整个数组),我想返回“无数据”。我能为此做些什么?

代码:

query="select `t1`,`t2`,`t3` from test";

                PreparedStatement pre = conn.prepareStatement(query);
                ResultSet res = pre.executeQuery();
                String val[][] = new String[res.getRow()][3];
           while (res.next()) {
                val[i][0] = res.getString(1);
                val[i][1] = res.getString(2);
                val[i][2] = res.getString(3);
                i++;
              }

                res.close();
                conn.close();
                pre.close();

                return (val);

(如果val[1][1]为空,我希望res.getString(2)为“无数据”。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

试试这种方式

val[i][0] = (res.getString(1)!=null & !res.getString(1).equals(""))?res.getString(1).equals(""):"No Data";

val[i][1] = (res.getString(1)!=null & !res.getString(2).equals(""))?res.getString(3).equals(""):"No Data";

val[i][2] = (res.getString(1)!=null & !res.getString(3).equals(""))?res.getString(3).equals(""):"No Data";

使用唯一的“&”用&&amp ;;检查条件时会发生什么首先它将检查第一个即rs.getString(1)!= null如果这是null或不是它将检查另一个条件,即rs.getString(1).equal(“”)所以如果你检查它会null然后在第二个条件中它将导致NullPointerException的错误。

如果你只使用一个&然后它会检查第一个条件是否为真,然后只检查另一个条件,否则不行。

答案 2 :(得分:0)

添加如下小辅助方法:

public static String getValue(String value) {
  return getValue(value, "No Data");
}

public static String getValue(String value, String default) {
  return value == null ? default : value;
}

像这样使用:

val[i][0] = getValue(res.getString(1));  // standard 
val[i][0] = getValue(res.getString(1), "NULL");  // with custom default message
相关问题