⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbusermanage.java

📁 基于struct结构的jsp
💻 JAVA
字号:
package com.ntsky.bbs.service.db;

import java.util.*;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger ;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.PreparedStatement;

import com.ntsky.bbs.service.UserManage;
import com.ntsky.bbs.service.User;
import com.ntsky.bbs.service.db.DBUser;
import com.ntsky.datasource.DBConnectionManager;
/**
 * <p>Title: Ntsky OpenSource BBS</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: 天网文化发展有限公司</p>
 * @author 姚君林
 * @version 1.0
 */

public class DBUserManage implements UserManage{

    private final static Logger logger = Logger.getLogger(DBUserFactory.class);
    // 用户总数(默认状态)
    private final static String USER_COUNT = "SELECT COUNT(usrId) FROM t_user;";

    // 用户列表(默认状态)
    private final static String USER_LIST = "SELECT usrId,usrName,usrWealth,usrRole,usrIsDelete FROM t_user;";

    //单个用户列表(用户名查询)
    private final static String SEL_USER_NAME = "SELECT * FROM t_user;";


    /**
     *
     * @param role String
     * @return int
     */
    /*public User getUserInfo(String usrName){
        Connection conn = DBConnectionManager.getInstance().getConnection(
            );
        PreparedStatement pstm = null;
        ResultSet rs = null;
        try {
            pstm = conn.prepareStatement(SEL_USER_NAME);

        }
        catch (Exception ex) {
            logger.error("获取用户信息错误 : " + ex.getMessage());
        }
        finally{
            try {
               rs.close();
           }
           catch(Exception e){
               logger.error("关闭 pstm 失败 error : " + e.getMessage());
           }
           try {
               pstm.close();
           }
           catch (Exception ex) {
               logger.error("关闭 pstm 失败 error : " + ex.getMessage());
           }
           try {
               conn.close();
           }
           catch (Exception ex) {
               logger.error("关闭数据库连接失败 error : " + ex.getMessage());
           }
        }
    }*/

    /**
     * 此功能保留
     * @param role String
     * @return int
     * @version
     */
    public int userCount(String role) {
       Connection conn = DBConnectionManager.getInstance().getConnection(
           );
       PreparedStatement pstm = null;
       ResultSet rs = null;
       int userCount = 0;
       try {
           pstm = conn.prepareStatement(USER_COUNT);
           rs = pstm.executeQuery();
           logger.info("角色为空吗? : " + (role==null));
           if(role==null){
               rs.next();
               userCount = rs.getInt("usrId");
           }
           else{
               while(rs.next()){
                   String tempRole = rs.getString("usrRole");
                   //如果包含该角色
                   if(isRole(tempRole, role)){
                       userCount++;
                   }
               }
           }
       }
       catch (Exception ex) {
           logger.error("更新回复主题时用户的信息发生错误 : " + ex.getMessage());
       }
       finally {
           try {
               rs.close();
           }
           catch(Exception e){
               logger.error("关闭 pstm 失败 error : " + e.getMessage());
           }
           try {
               pstm.close();
           }
           catch (Exception ex) {
               logger.error("关闭 pstm 失败 error : " + ex.getMessage());
           }
           try {
               conn.close();
           }
           catch (Exception ex) {
               logger.error("关闭数据库连接失败 error : " + ex.getMessage());
           }
       }
       return userCount;
   }

   /**
    * 统计用户总数
    * @return int
    */
   public int userCount() {
      Connection conn = DBConnectionManager.getInstance().getConnection(
          );
      PreparedStatement pstm = null;
      ResultSet rs = null;
      int userCount = 0;
      try {
          pstm = conn.prepareStatement(USER_COUNT);
          rs = pstm.executeQuery();
          rs.next();
          userCount = rs.getInt(1);
      }
      catch (Exception ex) {
          logger.error("更新回复主题时用户的信息发生错误 : " + ex.getMessage());
      }
      finally {
          try {
              rs.close();
          }
          catch(Exception e){
              logger.error("关闭 pstm 失败 error : " + e.getMessage());
          }
          try {
              pstm.close();
          }
          catch (Exception ex) {
              logger.error("关闭 pstm 失败 error : " + ex.getMessage());
          }
          try {
              conn.close();
          }
          catch (Exception ex) {
              logger.error("关闭数据库连接失败 error : " + ex.getMessage());
          }
      }
      return userCount;
  }

   /**
    * 角色数组
    * @param string String
    * @return List
    */
   private boolean isRole(String string,String role) {
       StringTokenizer stringTokenizer = new StringTokenizer(string, ",");
        while (stringTokenizer.hasMoreTokens()) {
            String str = stringTokenizer.nextToken();
            if(role.equals(str)){
                return true;
            }
        }
        return false;
    }

   /**
    * 用户列表分页显示
    * @param maxNum int ------ 每页最多能显示的用户数
    * @param page int ------ 当前的页码
    * @return Iterator
    */
   public Iterator userList(int maxNum ,int page) {
        //maxNum 每页最多现实页数 page---->第几页
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        ResultSet rs = null;
        List list = new ArrayList();
        int i = 0;
        try {
            try {
                pstm = conn.prepareStatement(USER_LIST);
                rs = pstm.executeQuery();
            }
            catch (Exception e) {
                logger.error("创建用户列表指针对象错误 : " + e.getMessage());
            }
            if (page == 1) { //第一页
                try {
                    rs.absolute(1);
                }
                catch (Exception e) {
                    logger.error("指针移到第一条数据错误 : " + e.getMessage());
                }
            }
            else {
                rs.absolute( (page - 1) * maxNum);
            }
            /**
             * 根据定位的指针来取得主题的值
             */
            for (i = 0; i < maxNum; i++) {
                if (page != 1) {
                    if (!rs.next()) {
                        break;
                    }
                }
                User user = new DBUser();
                user.setUsrId(rs.getInt("usrId"));
                user.setUsrName(rs.getString("usrName"));
                user.setUsrWealth(rs.getString("usrWealth"));
                user.setUsrRole(rs.getString("usrRole"));
                user.setUsrIsDelete(rs.getInt("usrIsDelete"));
                list.add(user);
                /**
                 * 当页数为1的时候(填充数据后在返回)
                 */
                if (page == 1) {
                    if (!rs.next()) {
                        break;
                    }
                }
            }
        }
        catch (Exception e) {
            logger.error("获取用户列表出错 : " + e.getMessage());
        }
        finally {
            try {
               rs.close();
           }
           catch (Exception ex) {
               logger.error("关闭rs失败 : " + ex.getMessage());
           }
            try {
                pstm.close();
            }
            catch (Exception ex) {
                logger.error("关闭pstm失败 : " + ex.getMessage());
            }
            try {
                conn.close();
            }
            catch (Exception ex) {
                logger.error("关闭conn失败 : " + ex.getMessage());
            }
        }
        return list.iterator();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -