编程时遇到登录的处理:用username作为查找条件来获取password,判断从数据库中获得的password与用户输入的password是否一致,一致就跳转到成功页面,不一致就跳转到失败页面。可问题是Oracle中字符串的查找要加引号,数据库中的username,password都是加引号的,怎么才能和用户的相匹配的,我的sql语句是语句是这样写的
public boolean checkUser(String username,String password){
boolean b=false;
try {
psm=con.prepareStatement("select password from test where username='username'");
rs=psm.executeQuery();
while(rs.next()){
String dbpassword=rs.getString(1);
if(dbpassword.equals(password)){
b=true;
}
}但这样得到的password不可能会匹配,请高手帮一下忙,怎么才能获得正确的password
public boolean checkUser(String username,String password){
boolean b=false;
try {
psm=con.prepareStatement("select password from test where username='username'");
rs=psm.executeQuery();
while(rs.next()){
String dbpassword=rs.getString(1);
if(dbpassword.equals(password)){
b=true;
}
}但这样得到的password不可能会匹配,请高手帮一下忙,怎么才能获得正确的password
boolean b=false;
try {
psm=con.prepareStatement("select password from test where username=?");
rs=psm.setString(0, username);
while(rs.next()){
String dbpassword=rs.getString(1);//这里建议用rs.getString("password");password是数据库的字段名
if(dbpassword.equals(password)){
b=true;
}
}
public boolean checkUser(String username,String password){
boolean b=false;
try {
psm=con.prepareStatement("select password from test where username=? and password=?");
psm.setString(0, username);
psm.setString(1, password);
rs = psm.executeQuery();
if(rs.next()){
b=true;
}
return b;这样应该也可以,上面的N多问题,搞糊涂了..
psm.setString(2, password);
这样才对jdbc中序号是从1开始的
username前后加2个或者3个单引号你测试一下