当前位置: 技术问答>java相关
关于jsp中数据库查询的问题
来源: 互联网 发布时间:2017-03-11
本文导语: 我对数据库的知识知之甚少,在做一个用户登陆检查的时候,想通过从登陆页面调用过来的参数对数据库查询,出现问题 例如 String name=request.getParameter("userName"); String password=request.getParameter("userPassword"); Clas...
我对数据库的知识知之甚少,在做一个用户登陆检查的时候,想通过从登陆页面调用过来的参数对数据库查询,出现问题
例如
String name=request.getParameter("userName");
String password=request.getParameter("userPassword");
Class.forName(..);
Connection c=...
Statement s=....
//假设以上的是正确的,接下来,我想用sql语句查询数据库中的Name和password,将之与传来的参数比较判断,但是不知道怎么做,我进行以下尝试:
ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
"WHERE Name=name");
在where语句中,这样写是不行的,name是一个变量,不能作为这样的字串的,我又尝试:
"WHERE "+"Name"=name,这样也不行,应该怎么做??
例如
String name=request.getParameter("userName");
String password=request.getParameter("userPassword");
Class.forName(..);
Connection c=...
Statement s=....
//假设以上的是正确的,接下来,我想用sql语句查询数据库中的Name和password,将之与传来的参数比较判断,但是不知道怎么做,我进行以下尝试:
ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
"WHERE Name=name");
在where语句中,这样写是不行的,name是一个变量,不能作为这样的字串的,我又尝试:
"WHERE "+"Name"=name,这样也不行,应该怎么做??
|
"WHERE Name='"+name+"'");
|
"WHERE Name='"+name+"'");就是变量,不是常量
|
ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
"WHERE Name='"+(new String(request.getParameter("userName").getBytes("ISO8859_1"),"gb2312"))+"'");
顺便做个中文编码,request取得的数据需要编码
"WHERE Name='"+(new String(request.getParameter("userName").getBytes("ISO8859_1"),"gb2312"))+"'");
顺便做个中文编码,request取得的数据需要编码
|
如果不要编码,则:
ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
"WHERE Name='"+request.getParameter("userName")+"'");
ResultSet r=s.executeQuery("SELECT Name,password "+"FROM user "+
"WHERE Name='"+request.getParameter("userName")+"'");
|
编码主要是针对那些接收提交来的数据时显示为乱码的情况,如果没有出现乱码就不需要编码