📄 sectiondao.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 + -