哪位高手能帮忙解释下以下加粗语句中的数字分别代表什么意思?非常感谢
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)的书籍,谢谢~
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结果的第一个字段
就是
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值,放到第一个参数的位置
这里面的?是特殊字符,表示这个地方是参数
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,request.getParameter(“id”)) ;
pstmt.setString(2,request.getParameter(“password”)) ;
这里的1,表示上面那个语句里的 第一个?,而2表示第二个?
然后setString就是把 从网页传过来的id值,放到第一个参数的位置