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

📄 commonaction.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! */package biz.tbuy.bbs;import biz.tbuy.bbs.bean.BaseBean;import biz.tbuy.common.logs.Elog;import biz.tbuy.common.pool.ProxyConn;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b> * <a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b> * <a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class CommonAction extends BaseBean{        public CommonAction() {}        // -------------------------------------------------- forum.jsp        /**     * get the infomation about the topic and the lastReply     * return for example:<br>     * Obj(0).get("topic") 获得主题TopicModel;<br>     * Obj(0).get("lastReply") 获得最后的回复 ReplyModel;<br>     * @param startRow     * @param pageSize     * @param forumId     * @return a list of Map     */    public static List<Map> getTopicsObjectByForumId(int startRow,             int pageSize, int forumId) {        List<Map> list = new ArrayList<Map>();        List<TopicModel> topics =                 TopicAction.getTopicsForPageByForumId(startRow, pageSize, forumId);        for (TopicModel topic : topics) {            ReplyModel reply = ReplyAction.getLastReplyByTopicId(topic.getNum());                        Map<String, Object> myMap = new HashMap<String, Object>();            myMap.put("topic", topic);            myMap.put("lastReply", reply);                        list.add(myMap);        }        return list;    }        // -------------------------------------------------- topic.jsp        /**     * 通过topicId获取与该主题相关联的信息,     * 如topic,userinfo,upload     * topicObj包含以下数据:     * topic['topic'] => TopicModel<br>     * topic['userinfo'] => UserinfoModel<br>     * topic['files'] => ArrayList<FileModel><br>     * topic['music'] => MusicModel<br>     * @param topicId 所要获取的主题的id     * @return topicObj topicObj为HashMap类型     */    public static Map<String, Object> getTopicOfObject(int topicId) {        Map<String, Object> topicObj = new HashMap<String, Object>(1);        String sql = "select * from topic, userinfo " +                "where t_num=? " +                "and t_beRevoke!=1 " +                "and t_byUser=u_byUser ";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setInt(1, topicId);            ResultSet rs = ps.executeQuery();            if (rs.next()) {                // topic 为该主题本身的信息                TopicModel topic = new TopicModel();                // userinfo用于存放该主题的作者信息                UserinfoModel userinfo = new UserinfoModel();                // files用于存放该主题的所有关联上传文件                List<FileModel> files = new ArrayList<FileModel>();                // 音乐信息                MusicModel music = new MusicModel();                                topic = TopicAction.getTopicByRS(rs);   // 取得topic                userinfo = UserinfoAction.getUserinfoByRS(rs); // 取得userinfo                files = FileAction.getFilesByTopicId(topic.getNum());  // 取得上传文件                music = MusicAction.getMusicById(topic.getMusic());                                topicObj.put("topic", topic);                topicObj.put("userinfo", userinfo);                topicObj.put("files", files);                topicObj.put("music", music);            }        } catch (SQLException sqle) {            Elog.log("CommonAction.getTopicOfObject()/" + sqle.getMessage());        } finally {            myConn.close();        }        return topicObj;    }        /**      * reply     * 通过Topic获取相应的回复信息数量(replies)     * @param topic 通过该topic获取其回复总数     * @return total replys with the topic     */    public static int getTotalRepliesByTopic(TopicModel topic) {        int total = 0;        String sql = "select * from userinfo, reply " +                "left join upload on (up_byTarget=r_num and up_target='r') " +                 "where r_byTopic=? " +                "and r_byUser=u_byUser " +                "and r_beRevoke!=1 ";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setInt(1, topic.getNum());            ResultSet rs = ps.executeQuery();            rs.last();            total = rs.getRow();        } catch (SQLException sqle) {            Elog.log("CommonAction.getRepliesByTopic()/" + sqle.getMessage());        } finally {            myConn.close();        }        return total;    }        /**     * 获取一定数量的回复信息,并组合成List集合,     * 主要用于页面分页相关     * for example:     * ReplyObj['userinfo'] is a UserinfoModel,      * ReplyObj['reply'] is a ReplyModel;     * ReplyObj['file'] -> upload file     * @param startRow 所要获取的起始位置     * @param pageSize 所要获取的数量     * @param topic 通过该主题获取其回复信息     * @return ReplyObj of list     */    public static List<Map> getRepliesByTopic(TopicModel topic, int startRow, int pageSize) {        List<Map> list = new ArrayList<Map>();        String sql = "select * from userinfo, reply " +                "left join upload on (up_byTarget=r_num and up_target='r') " +                 "where r_byTopic=? " +                "and r_byUser=u_byUser " +                "and r_beRevoke!=1 " +                "order by r_num asc " +                "limit ?, ?";        ProxyConn myConn = getConn();        try {            PreparedStatement ps = myConn.prepareStatement(sql);            ps.setInt(1, topic.getNum());            ps.setInt(2, startRow);            ps.setInt(3, pageSize);            ResultSet rs = ps.executeQuery();            list = getRepliesOfObject(rs);        } catch (SQLException sqle) {            Elog.log("CommonAction.getRepliesByTopic()/" + sqle.getMessage());        } finally {            myConn.close();        }        return list;    }        /**     * 该方法与ReplyAction -> getReplies(ResultSet rs)相关     * 注意:replyAction.getReplies(ResultSet)     * @param rs ResultSet     * @return list     */     private static List<Map> getRepliesOfObject(ResultSet rs) {        List<Map> list = new ArrayList<Map>();        try {            while (rs.next()) {                UserinfoModel userinfo = new UserinfoModel();                userinfo = UserinfoAction.getUserinfoByRS(rs);                                ReplyModel reply = new ReplyModel();                reply = ReplyAction.getReplyByRS(rs);                                FileModel file = FileAction.getFileByRS(rs);                                Map<String, Object> myMap = new HashMap<String, Object>(3);                myMap.put("userinfo", userinfo);                myMap.put("reply", reply);                if (file.getName() != null) {                    myMap.put("file", file);                }                list.add(myMap);            }        } catch (SQLException sqle) {            Elog.log("CommonAction:getRepliesOfObject:/" +                     sqle.getMessage());        }        return list;    }}

⌨️ 快捷键说明

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