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

📄 boarddao.java

📁 EasyJForum 是一个基于 Java 技术的免费社区论坛软件系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            ArrayList<Object> paramValues = new ArrayList<Object>();
            paramValues.add(moderator);
            paramValues.add(boardID);
            this.execUpdateSql(adapter.Board_ModModerator, paramValues, conn);
            
            CacheManager cache = CacheManager.getInstance();
            BoardVO aBoard = cache.getBoard(sectionID, boardID);
            aBoard.moderator = moderator;

            cache.loadModerators();
            return "OK";
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }
    
    /**
     * Delete forum board & posts from DB
     * @param 
     *      sectionID - Section ID of board to be deleted
     *      boardID - Board ID to be deleted
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void deleteBoard(String sectionID, String boardID) throws SQLException
    {
        ArrayList<Object> paramValues = new ArrayList<Object>();
        paramValues.add(boardID);
        Connection conn = dbManager.getConnection();
        try
        {
            conn.setAutoCommit(false);
            
            this.execUpdateSql(adapter.Board_RemoveBookmarks, paramValues, conn);
            this.execUpdateSql(adapter.Board_RemoveTrashs, paramValues, conn);
            this.execUpdateSql(adapter.Board_RemoveTopics, paramValues, conn);
            this.execUpdateSql(adapter.Board_Delete, paramValues, conn);

            conn.commit();
            
            CacheManager cache = CacheManager.getInstance();
            cache.deleteBoard(sectionID, boardID);
        }
        catch(SQLException se)
        {
            conn.rollback();
            throw se;
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }

    /**
     * Merge two forum boards
     * @param 
     *      sourceID - Source board ID to be merged
     *      targetID - Target board ID to be merged
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void mergeBoards(String sourceID, String targetID) throws SQLException
    {
        ArrayList<Object> paramValues = new ArrayList<Object>();
        paramValues.add(targetID);
        paramValues.add(sourceID);
        
        Connection conn = dbManager.getConnection();
        try
        {
            CacheManager cache = CacheManager.getInstance();
            String targetSectionID = cache.getBoard(targetID).sectionID;
            
            conn.setAutoCommit(false);
            
            this.execUpdateSql(adapter.Board_MoveBookmarks, paramValues, conn);
            this.execUpdateSql(adapter.Board_MoveTrashs, paramValues, conn);

            paramValues.add(0,targetSectionID);
            this.execUpdateSql(adapter.Board_MoveTopics, paramValues, conn);

            paramValues.clear();
            paramValues.add(sourceID);
            this.execUpdateSql(adapter.Board_Delete, paramValues, conn);
            
            conn.commit();
        }
        catch(SQLException se)
        {
            conn.rollback();
            throw se;
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }
    
    /**
     * Get a board statistic info 
     * @param 
     *      aBoard - A board object
     *      conn - DB Connection instance
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void getBoardStatInfo(HashMap<String,BoardVO> boardMap, Connection conn) throws SQLException
    {
        PreparedStatement pstmtStat = null;
        PreparedStatement pstmtQuery = null;
        ResultSet rs = null;
        try
        {
            String boardID = null;
            BoardVO aBoard = null;
            StringBuilder inSql = new StringBuilder(" (");
            
            pstmtStat = conn.prepareStatement(adapter.Board_StatTopics);   
            rs = pstmtStat.executeQuery();
            while(rs.next())
            {   
                boardID = rs.getString(1);
                aBoard = boardMap.get(boardID);
                if (aBoard != null)
                {
                    aBoard.topics = rs.getInt(2);
                    aBoard.replies = rs.getInt(3);
                        
                    if (aBoard.topics > 0)
                    {
                        if (inSql.length() > 2)
                            inSql.append(",");
                        inSql.append(rs.getString(4));
                    }
                }
            }
            inSql.append(")");

            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtStat);
            
            String today = AppUtils.getCurrentDateStr();
            
            pstmtStat = conn.prepareStatement(adapter.Board_StatTodayTopics);
            pstmtStat.setObject(1, Date.valueOf(today));
            rs = pstmtStat.executeQuery();
            while(rs.next())
            {   
                boardID = rs.getString(1);
                aBoard = boardMap.get(boardID);
                if (aBoard != null)
                {
                    aBoard.todayPosts = rs.getInt(2);
                }
            }

            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtStat);

            pstmtStat = conn.prepareStatement(adapter.Board_StatTodayReplies);
            pstmtStat.setObject(1, Date.valueOf(today));
            rs = pstmtStat.executeQuery();
            while(rs.next())
            {   
                boardID = rs.getString(1);
                aBoard = boardMap.get(boardID);
                if (aBoard != null)
                {
                    aBoard.todayPosts = aBoard.todayPosts + rs.getInt(2);
                }
            }
            
            if (inSql.length() > 3)
            {
                dbManager.closeResultSet(rs);
    
                pstmtQuery = conn.prepareStatement(adapter.Board_GetLastTopic + inSql.toString());
                rs = pstmtQuery.executeQuery();
                    
                while(rs.next())
                {
                    boardID = rs.getString(1);
                    aBoard = boardMap.get(boardID);
                    if (aBoard != null)
                    {
                        aBoard.lastTopicID = rs.getString(2);
                        aBoard.lastTopicTitle = rs.getString(3);
                        aBoard.lastTopicUser = rs.getString(4);
                        aBoard.lastNickname = rs.getString(5);
                        aBoard.lastTopicTime = AppUtils.formatSQLTimeStr(rs.getTimestamp(6));
                    }
                }
            }
        }
        finally
        {
            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtQuery);
            dbManager.closePStatement(pstmtStat);
        }
    }
    
    public void statBoardInfo() throws Exception
    {
        CacheManager cache = CacheManager.getInstance();
        ArrayList<SectionVO> sections = cache.getSections();
        if (sections == null) return;
        
        
        HashMap<String,BoardVO> boardMap = new HashMap<String,BoardVO>();
        
        SectionVO aSection = null;
        BoardVO aBoard = null;
        for (int i=0; i<sections.size(); i++)
        {
            aSection = sections.get(i);
            if (aSection != null && aSection.boardList != null)
            {
                for (int j=0; j<aSection.boardList.size(); j++)
                {
                    aBoard = aSection.boardList.get(j);
                    boardMap.put(aBoard.boardID, aBoard);
                }
            }
        }
        
        Connection conn = dbManager.getConnection();
        try
        {
            this.getBoardStatInfo(boardMap, conn);
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }

    public static class BoardVO
    {
        public String boardID = null;
        public String sectionID = null;
        public String boardName = null;
        public String highColor = null;
        public int seqno = 1;
        public String brief = null;
        public String keywords = null;
        public String moderator = null;
        public String viewStyle = null;
        public String sortField = null;
        public char isImageOK = 'T';
        public char isMediaOK = 'F';
        public char isGuestPostOK = 'F';
        public String allowGroups = null;
        public String acl = null;
        public String headAdCode = null;
        public String footAdCode = null;
        public int topics = 0;
        public int replies = 0;
        public int todayPosts = 0;
        public String lastTopicID = null;
        public String lastTopicTitle = null;
        public String lastTopicUser = null;
        public String lastNickname = null;
        public String lastTopicTime = null;
        public char state = 'N';
    }    
}

⌨️ 快捷键说明

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