日期:2014-05-18  浏览次数:20854 次

验证用户名和密码的简单问题,有代码!!大家帮忙看看吧!奇怪的错误...
当我在前台只是调用isPasswdOk()函数时能够通过。即:
if(isIn.isPasswdOk(syslogin.getUserName(),syslogin.getPassWd())){//right
但两个同时调用时却报错了。
if(isIn.isUsernameOk(syslogin.getUserName())){//用户名判断
if(isIn.isPasswdOk(syslogin.getUserName(),syslogin.getPassWd())){//密码判断
代码如下:(会不会使数据库关闭不当导致的错误呢?)


用户登录类:
package   cn.com.jysky.news.manage;
import   java.sql.*;
import   org.apache.log4j.Logger;

import   cn.com.jysky.datasource.*;
import   cn.com.jysky.log4j.UseLog4j;
import   cn.com.jysky.common.CodeFilter;
import   cn.com.jysky.persistence.NEWSAdmin;
public   class   ISLogin   {
private   DBConnection   db=null;


private   static   Logger   logger=UseLog4j.getLogInstance( "ISLogin ");
//判断用户名。
public   boolean   isUsernameOk(String   userName){
boolean   isOk=false;
if(db==null)
db=DBConnection.getInstance();
        String   strSql   =   "select   *   from   newsadmin   where   userName= ' "+userName+ " '; ";
try{
//db.prepareStatement(strSql);
ResultSet   rs=   db.read(strSql);
try{
rs.last();
//getRow()检索当前行编号。第一行为   1   号,第二行为   2   号,依此类推。
if(rs!=null&&rs.next()){
isOk=true;
rs.close();
}
}catch(SQLException   e){
e.printStackTrace(System.out);
logger.info( "查询用户返回指针时出现异常! ");
}
}
catch(Exception   e){
e.printStackTrace(System.out);
logger.info( "查询用户时出现异常! ");
}
finally{
db.stop();
}
return   isOk;
}

//判断密码。
public   boolean   isPasswdOk(String   userName,String   passWd){
boolean   isOk=false;
if(db==null)
db=DBConnection.getInstance();
String   strSql=   "select   *   from   newsadmin   where   userName= ' "+userName+ " '   and   passWd= ' "+passWd+ " '; ";
try{
//db.prepareStatement(strSql);
//db.setString(1,   CodeFilter.toHtml(strSql));
//db.setString(2,   CodeFilter.toHtml(strSql));
ResultSet   rs=   db.read(strSql);
try{
rs.last();
if(rs!=null&&rs.next()){
isOk=true;
rs.close();
}
}catch(SQLException   e){
e.printStackTrace(System.out);
logger.info( "查询密码返回指针时出现异常! ");
}
}
catch(Exception   e){
e.printStackTrace(System.out);
logger.info( "查询用户密码时出现异常! ");//同时调用两个函数时捕获这个异常。单独调用该方法不会捕获该异常。
}
finally{
db.stop();
}
return   isOk;
}
}

数据库管理类:
package   cn.com.jysky.datasource;

import   java.sql.*;

import   org.apache.log4j.*;
import   cn.com.jysky.log4j.*;
/**
  *   @author   彭金艳   E-mail:   pongjy123@163.com
  *   @version   创建时间:2007-1-3   下午04:49:58
  *   连接数据库实例.
  */
public   class   DBConnection   {
//静态工厂模式的对象.
private   static &nb