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

📄 dbmanager.java

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

import java.sql.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.log4j.Logger ;

import com.ntsky.util.*;
import com.ntsky.bbs.service.User;
import com.ntsky.bbs.service.Manager;
import com.ntsky.bbs.service.UserFactory;
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 DBManager implements Manager{
    private final static Logger logger = Logger.getLogger(DBManager.class);
    private final static String IS_EXIST_USER = "SELECT * FROM t_user WHERE usrName=?;" ;
    private final static String SET_ADMIN_PASSWORD = "INSERT INTO t_admin(adName,adPassWd,adFlag,adLastLogin,adLastLoginIp) VALUES(?,?,?,?,?);" ;
    private final static String IS_ADMIN_USER = "SELECT * FROM t_admin where adName=? and adPassWd=?;" ;
    private final static String UP_ADMIN_LOG = "UPDATE t_admin SET adLastLogin=?,adLastLoginIp=? WHERE adName=?;";
    private final static String SEL_ADMIN_LOG = "SELECT adLastLogin,adLastLoginIp FROM t_admin WHERE adName=?;";
    //安装成功更新用户角色
    private final static String UP_SETUPUSER_ROLES = "UPDATE t_user SET usrRole=-1 WHERE usrName=?;";
    private final static String SEL_ADMIN_ARRAY = "SELECT adName FROM t_admin;";

    /**
     * 管理员数组
     * @return List
     */
    public List AdminArray(){
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        List list = new ArrayList();
        ResultSet rs = null;
        try {
            pstm = conn.prepareStatement(SEL_ADMIN_ARRAY);
            rs = pstm.executeQuery();
            while(rs.next()){
                logger.info("管理用户有 : " + rs.getString("adName"));
                list.add(rs.getString("adName"));
            }
        }
        catch (Exception ex) {
            logger.error("获取管理用户数组错误 : " + ex.getMessage());
            ex.printStackTrace();
        }
        finally{
            try{ rs.close(); } catch(Exception e){ logger.error("关闭指针错误 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 list;
    }

    /**
     * 创建管理用户
     * @return boolean
     */
    public boolean insAdmin(String adName,String adPassWd,String adLastLoginIp){
        Connection conn = DBConnectionManager.getInstance().getConnection();
        ResultSet rs = null;
        PreparedStatement pstm = null;
        boolean temp = false;
        Timer timer = new TimerExpress("yyyy-MM-dd HH:mm:ss");
        try {
            pstm = conn.prepareStatement(IS_EXIST_USER);
            pstm.setString(1,adName);
            rs = pstm.executeQuery();
            if(!rs.next()){
                logger.info("该用户不存在,请先注册用户!!!");
                temp = true ;
                try {
                    rs.close();
                }
                catch(Exception ex){
                    logger.error("关闭 rs 失败 error : " + ex.getMessage());
                }
                try {
                    pstm.close();
                }
                catch (Exception ex) {
                    logger.error("关闭 pstm 失败 error : " + ex.getMessage());
                }
            }
            else{
                pstm = conn.prepareStatement(SET_ADMIN_PASSWORD);
                pstm.setString(1, adName);
                pstm.setString(2, MD5.toMD5(adPassWd));
                pstm.setInt(3, -1);
                pstm.setString(4, timer.getNowDate());
                logger.info("当前时间 : " + timer.getNowDate());
                pstm.setString(5, adLastLoginIp);
                pstm.executeUpdate();
                /**
                 * 更新用户权限
                 */
                upUserRole(adName);
                logger.info("成功设置管理员密码!");
            }
        }
        catch (SQLException ex) {
            logger.error("创建论坛管理员错误!");
            System.out.println("insAdmin " + ex.getMessage());
        }
        finally{
            try {
                pstm.close();
            }
            catch (Exception ex) {
                logger.error("关闭 pstm 失败 error : " + ex.getMessage());
            }
            try {
                conn.close();
            }
            catch (Exception ex) {
                logger.error("关闭数据库连接失败 error : " +ex.getMessage());
            }
        }
        return temp;
    }


    /**
     * 判断管理用户
     */
    public boolean isAdminUser(String adName,String adPassWd){
        boolean isSuccess = false;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        ResultSet rs = null;
        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(IS_ADMIN_USER);
            pstm.setString(1,adName);
            pstm.setString(2,MD5.toMD5(adPassWd));
            rs = pstm.executeQuery();
            if(rs.next()){
                logger.info(" 成功登陆后台 ");
                isSuccess = true;
            }
        }
        catch (Exception ex) {
            logger.info("登陆论坛错误!");
            ex.printStackTrace();
        }
        finally{
            try{ rs.close(); } catch(Exception e){ logger.error("关闭指针错误 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 isSuccess;
    }

    /**
    * 更新用户日志
    */
   public void upAdminLog(String adName, String adLastLoginIp) {
       Connection conn = DBConnectionManager.getInstance().getConnection(
           );
       Timer timer = new TimerExpress("yyyy-MM-dd HH:mm:ss");
       PreparedStatement pstm = null;
       try {
           pstm = conn.prepareStatement(UP_ADMIN_LOG);
           pstm.setString(1, timer.getNowDate());
           pstm.setString(2, adLastLoginIp);
           pstm.setString(3, adName);
           pstm.executeUpdate();
       }
       catch (Exception ex) {
           logger.error("更新管理日志信息失败 : " + ex.getMessage());
           ex.printStackTrace();
       }
       finally {
           try {
               pstm.close();
           }
           catch (Exception ex) {
               logger.error("关闭 pstm 失败 error : " + ex.getMessage());
           }
           try {
               conn.close();
           }
           catch (Exception ex) {
               logger.error("关闭数据库连接失败 error : " + ex.getMessage());
           }
       }
   }
   /**
    * 管理员日志信息
    */
   public String[] selAdminLog(String adName) {
       Connection conn = DBConnectionManager.getInstance().getConnection(
           );
       ResultSet rs = null;
       PreparedStatement pstm = null;
       String[] string = new String[2];
       try {
           pstm = conn.prepareStatement(SEL_ADMIN_LOG);
           pstm.setString(1, adName);
           rs = pstm.executeQuery();
           rs.next();
           string[0] = rs.getString("adLastLogin");
           string[1] = rs.getString("adLastLoginIp");
       }
       catch (Exception ex) {
           logger.error("获取管理日志信息失败 : " + ex.getMessage());
           ex.printStackTrace();
       }
       finally {
           try {
               rs.close();
           }
           catch (Exception ex) {
               logger.error("关闭 rs 失败 error : " + ex.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 string;
   }

   /**
    * 更新用户权限
    */
   private void upUserRole(String adName) {
       Connection conn = DBConnectionManager.getInstance().getConnection(
           );
       PreparedStatement pstm = null;
       try {
           pstm = conn.prepareStatement(UP_SETUPUSER_ROLES);
           pstm.setString(1, adName);
           pstm.executeUpdate();
       }
       catch (Exception ex) {
           logger.error("更新用户权限信息失败 : " + ex.getMessage());
           ex.printStackTrace();
       }
       finally {
           try {
               pstm.close();
           }
           catch (Exception ex) {
               logger.error("关闭 pstm 失败 error : " + ex.getMessage());
           }
           try {
               conn.close();
           }
           catch (Exception ex) {
               logger.error("关闭数据库连接失败 error : " + ex.getMessage());
           }
       }
   }
}

⌨️ 快捷键说明

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