request.setCharacterEncoding("gb2312");
String username=request.getParameter("textfield1");
String password=request.getParameter("textfield2");
try
 {
   Class.forName("com.mysql.jdbc.Driver");
   String url="jdbc:mysql://localhost/b";
  
   Connection con=DriverManager.getConnection(url,"root","123"); 
   
String sql="select * from user where username=? and password=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
if(rs.next())
..............................
}上面的程序是一个获取登陆界面中文本框中用户名和密码的代码,获取之后,在数据库中查询是否
存在。一直不是很明白setString()的具体使用,这儿的setString(1,username)中1代表username=?中的
问号,而?代表数据库username字段中的任意值,这儿是怎样实现查询用户名和密码是否存在的???

解决方案 »

  1.   

    PreparedStatement 是预处理的SQL语句。是你将参赛装配好之后调用ps.executeQuery()时才转化成SQL语句在数据库中执行
      

  2.   

    回答楼主的这个疑问:这儿是怎样实现查询用户名和密码是否存在的???
    根据你的sql语句,如果在数据库中能查到有这个用户名并且密码符合的数据,那么就存在,你可以在if(rs.next())里面执行你想要的操作,如果不存在这样的用户,那么就不走if里面的,就是这样