本帖最后由 liumin3285 于 2009-11-26 17:05:14 编辑

解决方案 »

  1.   

    1.rs.getString("book_jh") 可以用getDouble() 这个方法代替,前提是确保column值是对的
    2.Double.parseDouble() 可以接受类似String s = "   456.76 ";之列的值,无需trim()
    3.先判断1是否为null,不为null 则调用2。
      

  2.   

    哦,补充下,1的话在值为空时会给你个double的默认值,比较难判断是不是数据库无值。楼主的那个字段到底是什么类型的?varchar??
      

  3.   


    rs.getString("book_jh")
    换成
    (rs.getString("book_jh") == null || rs.getString("book_jh") = "")?rs.getString("book_jh"),"0"如果代码看着太乱就用if esle语句代替上面的语句
    还有另外一个方法是java代码不动,但是修改sql语句,在sql语句中判空。
    在查询字段中将"book_jh"改为"nvl(book_jh,'0') book_jh"。
      

  4.   

    这个确实很头疼。
    你应该写自己的工具包,做成静态方法来做这些转换。
    或者,把转换写在setBook_dj方法里,参数直接用:rs.getString("book_jh")。
    对了,你怎么没用rs.getDouble("book_jh")呢?
      

  5.   

    obj.setBook_dj(Double.parseDouble(rs.getString("book_jh")== null ? "0":rs.getString("book_jh")..trim()));
      

  6.   

    p
     public static String isNull(String str , String rtn){
          if(str == null || "".equals(str)){
                return rtn;      
          }
         return str; 
    }
    obj.setBook_dj(Double.parseDouble(isNull(rs.getString("book_jh"),0)); 
      

  7.   

    book_jh
     是 char类型 接别人的!