Code Bye

java mysql查询语句中的问题

哪位高手能帮忙解释下以下加粗语句中的数字分别代表什么意思?非常感谢
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
String sql = “SELECT name FROM user WHERE userid=? AND password=?” ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter(“id”)) ;
pstmt.setString(2,request.getParameter(“password”)) ;

rs = pstmt.executeQuery() ; // 查询
if(rs.next()){
flag = true ;
name = rs.getString(1) ;
}
另请高手推荐一本java语言操作数据库(最好是mysql)的书籍,谢谢~
解决方案

20

占位符的位置
就是
pstmt.setString(1,request.getParameter(“id”)) ;
pstmt.setString(2,request.getParameter(“password”)) ;
去替换sql的两个问号
name = rs.getString(1) ;
取select结果的第一个字段

20

String sql = “SELECT name FROM user WHERE userid=? AND password=?” ;
这里面的?是特殊字符,表示这个地方是参数
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter(“id”)) ;
pstmt.setString(2,request.getParameter(“password”)) ;
这里的1,表示上面那个语句里的 第一个?,而2表示第二个?
然后setString就是把 从网页传过来的id值,放到第一个参数的位置

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java mysql查询语句中的问题