int today = 0;
String sql = "";

解决方案 »

  1.   

    today=rs.getInt(1);
    这一句不是已经赋值给today了吗?
      

  2.   

    java里要求所有变量必须初始化,你那个是赋值,和初始化不同~~~你写成
    int today = rs.getInt(1);就应该不会有问题~~~
      

  3.   

    因为你最后一句是
    out.print(today);
    如过你从数据库里读不出数据,也就是today=rs.getInt(1);没有执行.
    那他就没初始话,所以你必须一开始就初始话.
      

  4.   

    <%!int today;
    String sql;
    ResultSet rs;%>
    <%sql="select * from user where name='John'";
    rs=smt.executeQuery(sql);
    if(rs.next())
      today=rs.getInt(1);
    out.print(today);
    %>
      

  5.   

    那是你if(rs.next())之后再赋值的如果rs.next()不是true today 就没有给赋值了
    方法内的本地变量是需要初始话的.这是java的语法.
    象sql虽然在定义的时候没有赋值但是后来还是赋值了