各位大哥些,帮我看看啊!!
想半天了愣是搞不懂!!
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吗?
想半天了愣是搞不懂!!
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的参数也可以的 看他那个怎么处理
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值
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);
}
ps.setString(1,username); // 把第一个占位符替换成username的值
ps.setString(2,password);ResultSet rs=ps.executeQuery(); // 执行sql语句,从数据库中查询
rs.next(); // 定位到第一个查询到的记录
i=rs.getInt(1); // 取结果集第一列的值,并且转化成int值以上“第*”都是指下表1开始的不是0开始的,请注意。
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)
一起学习~
rs.next();
i=rs.getInt(1); 换成
if(rs.next()){
i=rs.getInt(1);
}代码更严谨,便于调试的时候发现问题
rs.next();这一行执行了之后forward ← 开始的时候指向这里没有数据
数据行1 next()后 指向第一条数据
...
endrs.getInt(1);这是去第一行的第一个属性的值 是这个属性在数据库中是int型的。希望对你有帮助