小弟初学编程,遇到了一个灵异问题
做一个用户登录系统,写了一个验证用户的方法:
public boolean check(String name,String passwd) {
boolean flag = false;
Connection conn = null;
Statement stmt = null;
PreparedStatement ps = null;
ResultSet rs = null;
System.out.println(name);
System.out.println(passwd);
connDB conndb = new connDB();
conn = conndb.getConn();
try {
ps = conn.prepareStatement("select password from shopping_users where name=?");
ps.setString(1, name);
rs = ps.executeQuery();
System.out.println("in try " + name);
while (rs.next()) {
String pwd = rs.getString(1);
System.out.println(pwd);
if(passwd.equals(pwd)) {
flag = true;

}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
使用的是oracle数据库,但是无论如何rs中也去不到数据!!!
经过多方询问同学,均无结果,突发灵感,将oracle中的表明更改了:rename shopping_users to u;
再次运行,rs就取到值了,以为是oracle的表明不可以有下划线,但是当我再次吧表名改回来时:rename u to shopping_users ;
再运行,竟然也可以运行了,百思不得其解。
望高手指导!谢谢!!