各位大哥些,帮我看看啊!!
想半天了愣是搞不懂!!
PreparedStatement ps=connection.prepareStatement("select count(*) from one where username=? and password=?");
ps.setString(1,username);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
rs.next();
i=rs.getInt(1);
这段代码,是虾米意思啊?
尤其是最后那一句,i=re.getInt(1);
我这样写,能得到I=1吗?

解决方案 »

  1.   

    你得看getInt()那个方法是怎么回事
    传个为1的参数也可以的 看他那个怎么处理
      

  2.   


    PreparedStatement ps=connection.prepareStatement("select count(*) from one where username=? and password=?"); // 创建一个预编译的sql语句,里面的?是占位符
    ps.setString(1,username); // 把第一个占位符替换成username的值
    ps.setString(2,password);ResultSet rs=ps.executeQuery(); // 执行sql语句,从数据库中查询
    rs.next(); // 定位到第一个查询到的记录
    i=rs.getInt(1); // 取当前记录的第一列的值,并且转化成int值
      

  3.   

    PreparedStatement ps=connection.prepareStatement("select count(*) from one where username=? and password=?");
    ps.setString(1,username);//设置参数
    ps.setString(2,password);//设置参数
    ResultSet rs=ps.executeQuery();//执行查询
    rs.next();//指向下一条记录(即第一条记录)  这样写如果表不存在记录的情况下 rs.getInt(1)会出问题吧
    i=rs.getInt(1);  //获取第一个字段 
    if(rs.next()){
      i=rs.getInt(1);
    }
      

  4.   

    PreparedStatement ps=connection.prepareStatement("select count(*) from one where username=? and password=?"); // 创建一个预编译的sql语句,里面的?是占位符
    ps.setString(1,username); // 把第一个占位符替换成username的值
    ps.setString(2,password);ResultSet rs=ps.executeQuery(); // 执行sql语句,从数据库中查询
    rs.next(); // 定位到第一个查询到的记录
    i=rs.getInt(1); // 取结果集第一列的值,并且转化成int值以上“第*”都是指下表1开始的不是0开始的,请注意。
      

  5.   

    PreparedStatement ps=connection.prepareStatement("select count(*) from one where username=? and password=?"); //"?"是占位符,起始下标为1,这里有2个
         ps.setString(1,username);           //因为username是String,并且username的起始是第一位,所以是1
         ps.setString(2,password);           //因为password是String,并且password是第2位,所以是2
         ResultSet rs=ps.executeQuery();     //执行查询操作,增、删、改用ps.executeUpdate() 返回值是int
         rs.next();                          //如果结果集(resultset)有下一条数据
         i=rs.getInt(1);                     //如果数据是int型,getInt(下标),String就是getString(1)
      

  6.   

    多看些基础,看看api文档
    一起学习~
      

  7.   

    建议你把:
    rs.next();
    i=rs.getInt(1); 换成
    if(rs.next()){
    i=rs.getInt(1);
    }代码更严谨,便于调试的时候发现问题
      

  8.   

    最重要的是
    rs.next();这一行执行了之后forward    ← 开始的时候指向这里没有数据
    数据行1        next()后 指向第一条数据
    ...
    endrs.getInt(1);这是去第一行的第一个属性的值  是这个属性在数据库中是int型的。希望对你有帮助