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

📄 dbuserfactory.java

📁 基于struct结构的jsp
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            }
            catch (Exception ex) {
                logger.error("关闭 pstm 失败 error : " + ex.getMessage());
            }
            try {
                conn.close();
            }
            catch (Exception ex) {
                logger.error("关闭数据库连接失败 error : " +ex.getMessage());
            }
        }
        return user;
    }

    /**
     * 创建论坛用户
     * @param user
     */
    public User createUser(User user){
        boolean isSuccess = false;
        ResultSet rs = null;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        DBUser users = new DBUser(isSuccess);
        Timer timer = new TimerExpress("yyyy-MM-dd HH:mm:ss");
        try {
            pstm = conn.prepareStatement(IS_EXIST_USER);
            pstm.setString(1,user.getUsrName());
            rs = pstm.executeQuery();
            //判断是否有用户
            if(rs.next()){
                logger.info("用户 "+ user.getUsrName() + "已经存在 !");
                users.setIsUserExist(true);
            }
            else{
                users.setIsUserExist(false);
                rs.close();
                pstm.close();
                pstm = conn.prepareStatement(CREATE_USER);
                pstm.setString(1, CodeFilter.strEncode(user.getUsrName()));
                pstm.setString(2, "1");
                pstm.setString(3, MD5.toMD5(CodeFilter.strEncode(user.getUsrPasswd())));
                pstm.setString(4, CodeFilter.htmlEncode(user.getUsrEmail()));
                pstm.setString(5, CodeFilter.htmlEncode(user.getUsrQuestion()));
                pstm.setString(6, CodeFilter.htmlEncode(user.getUsrAnswer()));
                pstm.setString(7, timer.getNowDate());
                pstm.setString(8, timer.getNowDate());
                pstm.executeUpdate();
                users.setSuccess(true);
                logger.info("成功创建用户 : " + user.getUsrName());
            }
        }
        catch (Exception ex) {
            logger.error("创建论坛用户发生错误 : " + 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 users;
    }

    /**
     * 用户登陆
     */
    public User userLogon(User user){
        ResultSet rs = null;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        User users = new DBUser() ;
        try {
            pstm = conn.prepareStatement(USER_LOGON);
            pstm.setString(1,CodeFilter.htmlEncode(user.getUsrName()));
            pstm.setString(2,MD5.toMD5(CodeFilter.htmlEncode(user.getUsrPasswd())));
            rs = pstm.executeQuery();
            //判断是否有用户
            if(rs.next()){
                logger.info("用户 "+ user.getUsrName() + "成功登陆 !");
                //先更新用户信息
                upUserLoginInfo(user.getUsrName(),user.getUsrName());
                users = userInfo(user.getUsrName());
            }
        }
        catch (Exception ex) {
            logger.error("论坛用户登陆发生错h误 : " + ex.getMessage());
        }
        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 users;
    }


    /**
     * 获取该用户的详细信息
     */
    public User userInfo(String usrName){
        ResultSet rs = null;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        User user = new DBUser(true);
        try {
            pstm = conn.prepareStatement(USER_INFO_USRNAME);
            pstm.setString(1,usrName);
            rs = pstm.executeQuery();
            rs.next();
            logger.info("test1");
            user.setUsrId(rs.getInt("usrId"));
            user.setUsrName(rs.getString("usrName"));
            logger.info("test2");
            user.setUsrPasswd(rs.getString("usrPasswd"));
            user.setUsrSex(rs.getString("usrSex"));
            user.setUsrQuestion(rs.getString("usrQuestion"));
            user.setUsrEmail(rs.getString("usrEmail"));
            user.setUsrAnswer(rs.getString("usrAnswer"));
            String usrRole = rs.getString("usrRole");
            user.setRoles(getRoles(usrRole));
            user.setUsrRole(usrRole);
            user.setUsrIsOpen(rs.getString("usrIsOpen"));
            user.setUsrRealName(rs.getString("usrRealName"));
            user.setUsrBirthDay(rs.getString("usrBirthDay"));
            user.setUsrFace(rs.getString("usrFace"));
            user.setUsrUrl(rs.getString("usrUrl"));
            user.setUsrQicq(rs.getString("usrQicq"));
            user.setUsrMSN(rs.getString("usrMSN"));
            user.setUsrIdiograph(rs.getString("usrIdiograph"));
            user.setUsrAddr(rs.getString("usrAddr"));
            user.setUsrOccupation(rs.getString("usrOccupation"));
            user.setUsrEducation(rs.getString("usrEducation"));
            user.setUsrInfo(rs.getString("usrInfo"));
            user.setUsrWealth(rs.getString("usrWealth"));
            user.setUsrLoadTime(rs.getString("usrLoadTime"));
            user.setUsrRegTime(rs.getString("usrRegTime"));
            user.setUsrLastTime(rs.getString("usrLastTime"));
            user.setUsrTopic(rs.getInt("usrTopic"));
            user.setUsrReTopic(rs.getInt("usrReTopic"));
            user.setUsrDelTopic(rs.getInt("usrDelTopic"));
            user.setUsrEliteTopic(rs.getInt("usrEliteTopic"));
            user.setUsrIsDelete(rs.getInt("usrIsDelete"));
            logger.info("test4");
        }
        catch (Exception ex) {
            logger.error("获取论坛用户全部数据发生错误 : " + ex.getMessage());
        }
        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 user;
    }

    /**
     * 用户登陆时侯更新登陆次数和最后登陆时间
     */
    public void upUserLoginInfo(String type,String value){
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        Timer timer = new TimerExpress("yyyy-MM-dd HH:mm:ss");
        try {
            /**
             * 更新两种情况,一是用户通过cookie自动登陆,和通过用户名登陆
             */
            if("usrId".equals(type)){
                pstm = conn.prepareStatement(UP_LOGON_INFO_USRID);
            }
            else{
                pstm = conn.prepareStatement(UP_LOGON_INFO_USRNAME);
            }
            pstm.setString(1,timer.getNowDate());
            pstm.setString(2,value);
            pstm.executeUpdate();
        }
        catch (Exception ex) {
            logger.error("更新登陆信息失败 : " + 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());
            }
        }
    }

    /**
     * 用户详细信息cookieId获取
     */
    public User userInfo(int usrId){
        ResultSet rs = null;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        logger.info("用户成功登陆后返回true");
        User user = new DBUser();
        try {
            pstm = conn.prepareStatement(USER_INFO_USRID);
            pstm.setInt(1,usrId);
            rs = pstm.executeQuery();
            rs.next();
            user.setUsrId(rs.getInt("usrId"));
            user.setUsrName(rs.getString("usrName"));
            logger.info("设置用户名 : " + rs.getString("usrName"));
            user.setUsrPasswd(rs.getString("usrPasswd"));
            user.setUsrSex(rs.getString("usrSex"));
            user.setUsrQuestion(rs.getString("usrQuestion"));
            user.setUsrEmail(rs.getString("usrEmail"));
            user.setUsrAnswer(rs.getString("usrAnswer"));
            String usrRole = rs.getString("usrRole");
            user.setUsrRole(usrRole);
            user.setRoles(getRoles(usrRole));
            user.setUsrIsOpen(rs.getString("usrIsOpen"));
            user.setUsrRealName(rs.getString("usrRealName"));
            user.setUsrBirthDay(rs.getString("usrBirthDay"));
            user.setUsrFace(rs.getString("usrFace"));
            user.setUsrUrl(rs.getString("usrUrl"));
            user.setUsrQicq(rs.getString("usrQicq"));
            user.setUsrMSN(rs.getString("usrMSN"));
            user.setUsrIdiograph(rs.getString("usrIdiograph"));
            user.setUsrAddr(rs.getString("usrAddr"));
            user.setUsrOccupation(rs.getString("usrOccupation"));
            user.setUsrEducation(rs.getString("usrEducation"));
            user.setUsrInfo(rs.getString("usrInfo"));
            user.setUsrWealth(rs.getString("usrWealth"));
            user.setUsrLoadTime(rs.getString("usrLoadTime"));
            user.setUsrRegTime(rs.getString("usrRegTime"));
            user.setUsrLastTime(rs.getString("usrLastTime"));
            user.setUsrTopic(rs.getInt("usrTopic"));
            user.setUsrReTopic(rs.getInt("usrReTopic"));
            user.setUsrDelTopic(rs.getInt("usrDelTopic"));
            user.setUsrEliteTopic(rs.getInt("usrEliteTopic"));
            user.setUsrIsDelete(rs.getInt("usrIsDelete"));
        }
        catch (Exception ex) {
            logger.error("获取论坛用户全部数据发生错误 : " + ex.getMessage());
        }
        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 user;
    }

    /**
     *  修改用户信息
     */
    public boolean editUser(User user){
        boolean isSuccess = false;
        Connection conn = DBConnectionManager.getInstance().getConnection();
        PreparedStatement pstm = null;
        try {
            pstm = conn.prepareStatement(EDIT_USER);
            pstm.setString(1,CodeFilter.htmlEncode(user.getUsrEmail()));
            pstm.setString(2,CodeFilter.htmlEncode(user.getUsrQuestion()));
            pstm.setString(3,CodeFilter.htmlEncode(user.getUsrAnswer()));
            if("on".equals(user.getUsrIsOpen())){
                pstm.setInt(4,1);
            }
            else{
                pstm.setInt(4,0);
            }
            pstm.setString(5,CodeFilter.htmlEncode(user.getUsrRealName()));
            pstm.setString(6,user.getUsrBirthDay());
            String uploadFace = user.getUsrUploadFace();
            logger.info("uploadFace = " + uploadFace);
            if("".equals(uploadFace)){
                pstm.setString(7, user.getUsrFace());
            }
            else{
                pstm.setString(7,uploadFace);
            }
            pstm.setString(8,CodeFilter.htmlEncode(user.getUsrUrl()));
            pstm.setString(9,CodeFilter.htmlEncode(user.getUsrQicq()));
            pstm.setString(10,CodeFilter.htmlEncode(user.getUsrMSN()));
            pstm.setString(11,CodeFilter.htmlEncode(user.getUsrIdiograph()));
            pstm.setString(12,CodeFilter.htmlEncode(user.getUsrAddr()));
            pstm.setString(13,CodeFilter.htmlEncode(user.getUsrOccupation()));
            pstm.setString(14,CodeFilter.htmlEncode(user.getUsrEducation()));
            pstm.setString(15,CodeFilter.htmlEncode(user.getUsrInfo()));
            pstm.setInt(16,user.getUsrId());
            pstm.executeUpdate();
            logger.info("修改纪录成功......");
            isSuccess = true;
        }
        catch (Exception ex) {
            logger.error("修改用户信息错误 : " + 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 isSuccess;
    }

    /**
     * 设置用户权限
     */
    public void upUserRole(int i ,String usrRole,int usrId){
        Connection conn = DBConnectionManager.getInstance().getConnection(
            );
        PreparedStatement pstm = null;
        User user = userInfo(usrId);

⌨️ 快捷键说明

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