📄 forumaction.java
字号:
PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, forumId); isOk = ps.executeUpdate() > 0; } catch (SQLException sqle) { Elog.log("bbs/ForumAction.revokeForumById()/" + sqle.getMessage()); } finally { myConn.close(); } return isOk; } /** 以下为关于版主相关操作 *************************************************/ /** * 通过ForumModel的id,从master表中获取该forum的版主列表 * @param forumId 需要查找版主列表的讨论区的ID * @return list 包含所有该讨论区的版主列表的集合,ArrayList */ public static List<String> getForumMastersByForumId(int forumId) { List<String> list = new ArrayList<String>(); String sql = "select * from master where m_byForum=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, forumId); ResultSet rs = ps.executeQuery(); while (rs.next()) { list.add(rs.getString("m_user")); } } catch (SQLException sqle) { Elog.log("bbs/ForumAction.getForumMasterByForumId()/" + sqle.getMessage()); } finally { myConn.close(); } return list; } /** * 该方法用于查找master表,并判断讨论区的版主信息是否存在 * 即判断某用户是否为该讨论区的版主 * @param forumId 需要查找的讨论区的id * @param userId 需要查找的用户的id * @return true 表明该用户已经是该讨论区的版主,否则返回false */ public static boolean isExistForumMaster(int forumId, String userId) { boolean isOk = false; String sql = "select * from master where m_byForum=? and m_user=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, forumId); ps.setString(2, userId); isOk = ps.executeQuery().next(); } catch (SQLException sqle) { Elog.log("bbs/ForumAction.isExistForumMaster()/" + sqle.getMessage()); } finally { myConn.close(); } return isOk; } /** * 为讨论区添加版主信息 * @param forumId 所要添加版主的讨论区的id * @param userId 将要被添加为该forumId的版主的用户id * @return true 如果添加成功,否则返回false */ public static boolean addForumMaster(int forumId, String userId) { boolean isOk = false; String sql = "insert into master (m_byForum, m_user) values (?, ?)"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, forumId); ps.setString(2, userId); isOk = ps.executeUpdate() > 0; } catch (SQLException sqle) { Elog.log("bbs/ForumAction.addForumMaster()/" + sqle.getMessage()); } finally { myConn.close(); } return isOk; } /** * 删除讨论区的版主 * @param forumId 需要删除版主信息的讨论区ID * @param userId 需要删除的版主id * @return true 如果删除成功,否则返回false */ public static boolean deleteForumMaster(int forumId, String userId) { boolean isOk = false; String sql = "delete from master where m_byForum=? and m_user=?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, forumId); ps.setString(2, userId); isOk = ps.executeUpdate() > 0; } catch (SQLException sqle) { Elog.log("bbs/ForumAction.deleteForumMaster()/" + sqle.getMessage()); } finally { myConn.close(); } return isOk; } /************************************************************************** * 关于被删除及被回收的讨论区,以下部分是关于获取及彻底删除已被回收的讨论区 * 该方法获取已被回收的讨论区的总数量 * @return total **************************************************************************/ public static int getTotalRevokeForums() { int total = 0; String sql = "select * from forum where f_beRevoke=1"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); rs.last(); total = rs.getRow(); } catch (SQLException sqle) { Elog.log("Exception:ForumAction:getTotalRevokeForums:" + sqle.getMessage()); } finally { myConn.close(); } return total; } /** * 获取一定数量的“已被回收的讨论区”,该方法主要用于分页获取 * @param startRow 获取的开始行 * @param pageSize 从开始行获取一定的数量 * @return revokeForums 被回收的讨论区 */ public static List<ForumModel> getRevokeForums(int startRow, int pageSize) { List<ForumModel> revokeForums = new ArrayList<ForumModel>(); String sql = "select * from forum where f_beRevoke=1 " + "order by f_num desc " + "limit ?, ?"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.setInt(1, startRow); ps.setInt(2, pageSize); ResultSet rs = ps.executeQuery(); while (rs.next()) { revokeForums.add(getForumByRS(rs)); } } catch (SQLException sqle) { Elog.log("Exception:ForumAction:getRevokeForums:" + sqle.getMessage()); } finally { myConn.close(); } return revokeForums; } /** * 彻底删除所有已经被回收的讨论区信息,同时删除相关联的信息 * 删除讨论区,相关主题,相关回复信息,相关版主 * @return true 如果正常删除,否则false */ public static boolean clearRevokeForums() { boolean isOk = true; String sql = "delete forum, topic, reply, master " + "from forum " + "left join topic on f_num=t_byForum " + "left join reply on t_num=r_byTopic " + "left join master on m_byForum=f_num " + "where f_beRevoke=1"; ProxyConn myConn = getConn(); try { PreparedStatement ps = myConn.prepareStatement(sql); ps.executeUpdate(); } catch (Exception e) { isOk = false; Elog.log("Exception:ForumAction:clearRevokeForums:" + e.getMessage()); } finally { myConn.close(); } return isOk; } /** * 通过该ResultSet的当前行获取相应的数据,并转为单个ForumModel返回 * 这里是真正从ResultSet中获取数据的地方,所有的ForumModel都应该从 * 这里获得数据 * @param rs 一个ResultSet * @return forum */ public static ForumModel getForumByRS(ResultSet rs) { ForumModel forum = new ForumModel(); try { forum.setBeLock(rs.getBoolean("f_beLock")); forum.setBeRevoke(rs.getBoolean("f_beRevoke")); forum.setComment(rs.getString("f_comment")); forum.setDate(rs.getTimestamp("f_date")); forum.setImage(rs.getString("f_image")); forum.setName(rs.getString("f_name")); forum.setNum(rs.getInt("f_num")); forum.setByZone(rs.getInt("f_byZone")); forum.setByUser(rs.getString("f_byUser")); } catch (SQLException sqle) { Elog.log("ForumAction:getForumByRS:" + sqle.getMessage()); } return forum; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -