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

📄 sectiondao.java

📁 EasyJForum 是一个基于 Java 技术的免费社区论坛软件系统
💻 JAVA
字号:
package com.hongshee.ejforum.data;

/**
 * <p>Title: SectionDAO.java</p>
 * <p>Description: Forum section data access object</p>
 * <p>Copyright: Hongshee Software (c) 2007</p>
 * @author jackie du
 * @version 1.0
 */

import java.sql.Connection;
//import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;

import com.hongshee.ejforum.common.CacheManager;
import com.hongshee.ejforum.data.BoardDAO.BoardVO;
import com.hongshee.ejforum.util.PageUtils;

public class SectionDAO extends EntityDAO
{
    private static SectionDAO _dao = null;

    protected SectionDAO()
    {}

    public static SectionDAO getInstance()
    {
        if (_dao == null)
        {
            _dao = new SectionDAO();
        }
        return _dao;
    } 
        
    /**
     * Add a forum section
     * @param 
     *      request - HttpServletRequest
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void addSection(HttpServletRequest request) throws SQLException
    {
        int seqno = 1;
        CacheManager cache = CacheManager.getInstance();
        ArrayList<SectionVO> sections = cache.getSections();
        if (sections != null)
        {
            SectionVO aSection = sections.get(sections.size()-1);
            seqno = aSection.seqno + 1; 
        }

        ArrayList<Object> paramValues = new ArrayList<Object>();
        paramValues.add(PageUtils.getParam(request,"sectionName"));
        paramValues.add(seqno);
        paramValues.add(PageUtils.getParam(request,"cols"));
        this.execUpdateSql(adapter.Section_Insert, paramValues);
    }

    /**
     * Update section info
     * @param 
     *      request - HttpServletRequest
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void updateSection(HttpServletRequest request) throws SQLException
    {
        String sectionName = PageUtils.getParam(request,"sectionName");
        String cols = PageUtils.getParam(request,"cols");
        String sectionID = PageUtils.getParam(request,"sectionID");

        ArrayList<Object> paramValues = new ArrayList<Object>();
        paramValues.add(sectionName);
        paramValues.add(cols);
        paramValues.add(sectionID);
        this.execUpdateSql(adapter.Section_Update, paramValues);
            
        CacheManager cache = CacheManager.getInstance();
        SectionVO aSection = cache.getSection(sectionID);
        aSection.sectionName = sectionName;
        aSection.cols = Integer.parseInt(cols);
    }

    /**
     * Modify section moderator
     * @param 
     *      request - HttpServletRequest
     * @return string message 
     * @throws SQLException
     * @since 1.0
     */
    public String modifyModerator(String sectionID, String moderator) throws SQLException
    {
        Connection conn = null;
        try
        {
            String[] users = moderator.split(",");
            conn = dbManager.getConnection();
            
            for (int i=0; i<users.length; i++)
            {
                if (users[i].trim().length() > 0)
                {
                    if (!UserDAO.getInstance().isExistedID(users[i], conn))
                    {
                        return "用户名不存在:" + users[i];
                    }
                }
            }

            ArrayList<Object> paramValues = new ArrayList<Object>();
            paramValues.add(moderator);
            paramValues.add(sectionID);
            this.execUpdateSql(adapter.Section_ModModerator, paramValues, conn);
            
            CacheManager cache = CacheManager.getInstance();
            SectionVO aSection = cache.getSection(sectionID);
            aSection.moderator = moderator;
            
            cache.loadModerators();
            return "OK";
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }

    /**
     * Modify section sequence no
     * @param 
     *      request - HttpServletRequest
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void modifySeqno(HttpServletRequest request) throws SQLException
    {
        Connection conn = null;
        PreparedStatement pstmtUpdate = null;
        PreparedStatement pstmtUpdate2 = null;
        try
        {
            String[] ids = request.getParameterValues("id");
            String[] seqnos = request.getParameterValues("seqno");
            if (ids != null && ids.length > 0)
            {
                conn = dbManager.getConnection();
                pstmtUpdate = conn.prepareStatement(adapter.Section_ModSeqno);
                pstmtUpdate2 = conn.prepareStatement(adapter.Board_ModSeqno);
                
                String id = null;
                for (int i=0; i< ids.length; i++)
                {
                    id = ids[i];
                    if (id.startsWith("s"))
                    {
                        pstmtUpdate.setString(1, seqnos[i]);
                        pstmtUpdate.setString(2, id.substring(1));
                        pstmtUpdate.addBatch();
                    }
                    else if (id.startsWith("f"))
                    {
                        pstmtUpdate2.setString(1, seqnos[i]);
                        pstmtUpdate2.setString(2, id.substring(1));
                        pstmtUpdate2.addBatch();
                    }
                }
                pstmtUpdate.executeBatch();
                pstmtUpdate2.executeBatch();
            }
        }
        finally
        {
            dbManager.closePStatement(pstmtUpdate);
            dbManager.closePStatement(pstmtUpdate2);
            dbManager.closeConnection(conn);
        }
    }

    /**
     * Delete forum section from DB
     * @param 
     *      sectionID - Section ID to be deleted
     * @return none
     * @throws SQLException
     * @since 1.0
     */
    public void deleteSection(String sectionID) throws SQLException
    {
        ArrayList<Object> paramValues = new ArrayList<Object>();
        paramValues.add(sectionID);
        this.execUpdateSql(adapter.Section_Delete, paramValues);
            
        CacheManager cache = CacheManager.getInstance();
        cache.deleteSection(sectionID);
    }
    
    /**
     * Get all sections information
     * @param 
     *      none
     * @return Section object list
     * @throws SQLException
     * @since 1.0
     */
    public ArrayList<SectionVO> getAllSections() throws SQLException
    {
        Connection conn = null;
        PreparedStatement pstmtQuery = null;
        ResultSet rs = null;
        try
        {
            ArrayList<SectionVO> sections = new ArrayList<SectionVO>();
            SectionVO aSection = null;
            
            conn = dbManager.getConnection();
            pstmtQuery = conn.prepareStatement(adapter.Section_SelectAll);
            rs = pstmtQuery.executeQuery();

            while(rs.next())
            {
                aSection = new SectionVO();
                aSection.sectionID = rs.getString("sectionID");
                aSection.sectionName = rs.getString("sectionName");
                aSection.moderator = rs.getString("moderator");
                aSection.seqno = rs.getInt("seqno");
                aSection.cols = rs.getInt("cols");
                aSection.boardList = new ArrayList<BoardVO>();
                sections.add(aSection);
            }
            dbManager.closeResultSet(rs);
            
            BoardVO aBoard = null;
            String sectionID = null;
            HashMap<String,BoardVO> boardMap = new HashMap<String,BoardVO>();

            pstmtQuery = conn.prepareStatement(adapter.Section_SelectBoards);
            rs = pstmtQuery.executeQuery();

            while(rs.next())
            {
                aSection = null;
                sectionID = rs.getString("sectionID");
                for (int i=0; i<sections.size(); i++)
                {
                    aSection = sections.get(i);
                    if (aSection.sectionID.equals(sectionID))
                        break;
                    else
                        aSection = null;
                }
                if (aSection != null)
                {
                    aBoard = new BoardVO();
                    aBoard.sectionID = aSection.sectionID;
                    aBoard.boardID = rs.getString("boardID");
                    aBoard.boardName = rs.getString("boardName");
                    aBoard.highColor = rs.getString("highColor");
                    aBoard.seqno = rs.getInt("seqno");
                    aBoard.brief = rs.getString("brief");
                    aBoard.keywords = rs.getString("keywords");
                    aBoard.moderator = rs.getString("moderator");
                    aBoard.viewStyle = rs.getString("viewStyle");
                    aBoard.sortField = rs.getString("sortField");
                    aBoard.isImageOK = rs.getString("isImageOK").charAt(0);
                    aBoard.isMediaOK = rs.getString("isMediaOK").charAt(0);
                    aBoard.isGuestPostOK = rs.getString("isGuestPostOK").charAt(0);
                    aBoard.allowGroups = rs.getString("allowGroups");
                    aBoard.acl = rs.getString("acl");
                    aBoard.headAdCode = rs.getString("headAdCode");
                    aBoard.footAdCode = rs.getString("footAdCode");
                    aBoard.state = rs.getString("state").charAt(0);
                    
                    aSection.boardList.add(aBoard);
                    boardMap.put(aBoard.boardID, aBoard);
                }
            }

            BoardDAO.getInstance().getBoardStatInfo(boardMap, conn);
            return sections;
        }
        finally
        {
            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtQuery);
            dbManager.closeConnection(conn);
        }
    }
    
    public static class SectionVO
    {
        public String sectionID = null;
        public String sectionName = null;
        public int seqno = 1;
        public int cols = 1;
        public String moderator = null;
        public ArrayList<BoardVO> boardList = null;
    }    
}

⌨️ 快捷键说明

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