📄 boarddao.java
字号:
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 + -