WHERE userid=? AND password=?
?是表示 输入的值。
这个执行之后 的结果实际上是 :
SELECT userid,name FROM tuser WHERE userid=1 AND password=2
1和2 来自
pstmt.setString(1,userid) ;
pstmt.setString(2,password) ;
这里的"?"是参数占位符, 表示在执行查询时用传入的参数替换该内容
在你的例子中,
pstmt.setString(1,userid) ; // 将应用得到的参数userid传给第一个参数,
pstmt.setString(2,password) ; // 将应用得到的参数password传给第二个参数;
这是为了防止SQL注入最简单的办法,?是表示参数,用pstmt.setString(1,userid) 和stmt.setString(2,password) 替换参数来执行SQL语句。
?代表传入的参数
第一个代表userid
第二个代表password