文档章节

获得全部版块信息,json格式嵌套的应用

The_Distant_Light
 The_Distant_Light
发布于 2016/08/27 17:23
字数 656
阅读 5
收藏 0

package com.api.article.list;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sound.sampled.Line;

import net.sf.json.JSONObject;

import com.api.AppuseLog;
import com.api.ErrMsg;
import com.db.Jdbc;
import com.db.Page;
import com.module.SidToUid;

/**
 *  
 * 
 * @author WangXuDong E-mail: 1503631902@qq.com
 * @version 创建时间:2016-8-25 上午10:20:40    @file name Attention.java
 * @类说明 模块:获取全部版块
 * @操作的数据表 pw_threads(帖子基本信息表)
 * ,pw_forums(版块日志数据)
 * ,pw_memberdata(用户基本信息)
 * ,pw_members(会员主信息表用户);
 */
public class ForumsReadlistall {

    private HttpServletRequest request;
    private HttpServletResponse response;
    private String jsonString;

    public ForumsReadlistall(HttpServletRequest request,
            HttpServletResponse response) 
    {
        this.request = request;
        this.response = response;
    }

    public void process(String USERID, String ip, String UUID)
            throws ServletException, IOException 
    {
        Jdbc db = new Jdbc(); // 获得数据库资源
        Page page = new Page(); // 获得其他资源
        //SidToUid sidToUid = new SidToUid(request, response);// 调用SidToUid方法

            String username = "";
            String sql = "";
            String fid = "";
            String name = "";// 版块名称
            String subject = "";// 帖子标题
            String icon = "";// 帖子图标
            String tid = "";// 帖子id
            String fans = "";// 粉丝数
            String hits = "";// 点击数

        response.setContentType("text/html;charset=UTF-8");// 定义客户端响应的文本类型,与字符编码
        request.setCharacterEncoding("UTF-8");// 定义客户端请求的字符编码
        PrintWriter out = response.getWriter();
        /*
         * 输出全部json格式
         */
            JSONObject totalMap = new JSONObject();
            //Map<String,List<Map<String,String>>> totalMap=new TreeMap<String,List<Map<String,String>>>();
            
        try {
            
            /*
             * 查询出版块的信息
             */
            ResultSet rs1 = db.executeQuery("SELECT fid,name from pw_forums;");
            while (rs1.next()) 
            {
                
                fid = rs1.getString("fid");// 版块id
                name = rs1.getString("name");// 版块名字
                /*
                 * 链表查询,根据版块id查询出帖子
                 */
                sql=("SELECT " 
                        + "pw_threads.tid,"
                        + "pw_threads.icon," 
                        + "pw_threads.fid,"
                        + "pw_threads.hits," 
                        + "pw_threads.subject,"
                        + "pw_forums.name," 
                        + "pw_memberdata.fans " 
                        + "FROM "
                        + "pw_threads," 
                        + "pw_forums," 
                        + "pw_memberdata,"
                        + "pw_members " 
                        + "WHERE "
                        + "pw_forums.fid=pw_threads.fid  " 
                        + "AND "
                        + "pw_members.uid=pw_memberdata.uid " 
                        + "AND "
                        + "pw_members.username=pw_threads.author " 
                        + "AND"
                        + " pw_forums.fid='" + fid + "';");
                ResultSet rs = db.executeQuery(sql);
                /*
                 * 获取所有版块的全部帖子信息
                 */
                List<Map<String,String>> listSubFormMap=new ArrayList<Map<String,String>>();
                while (rs.next()) {
                    
                    /*
                     * 获取数据庫的帖子信息
                     */
                    Map<String,String> subFormMap=new HashMap<String,String>();//new出新空间存储数据庫的帖子信息
                    
                    name = rs.getString("name");// 版块名字
                    subject = rs.getString("subject");// 帖子标题
                    icon = rs.getString("icon");// 帖子图标
                    tid = rs.getString("tid");// 帖子id
                    fans = rs.getString("fans");// 粉丝数
                    hits = rs.getString("hits");// 点击数
                    
                    subFormMap.put("forumid", tid);// 帖子id
                    subFormMap.put("name", subject);// 帖子标题
                    subFormMap.put("logo", icon);// 帖子图标
                    subFormMap.put("num", hits);// 点击数
                    subFormMap.put("attentionNum", fans);// 创建时间
                    
                    listSubFormMap.add(subFormMap);//帖子信息的集合
                    
                }
                totalMap.put(name, listSubFormMap);
                if (rs != null)
                {
                    rs.close();// 关闭指针
                }
                

            }if(rs1 != null)
            {
                rs1.close();// 关闭指针
            }

        } catch (SQLException e) {
            ErrMsg errinfo = new ErrMsg(request, response);
            errinfo.ShowErrMsg("500", "查询异常");
            
            if (db != null) {
                db.close();
                db = null;
            }

            if (page != null) {
                page = null;
            }
            out.flush();
            out.close();
            return;// 程序关闭
        }
        
        out.print("{\"success\":true,\"resultCode\":\"1000\",\"msg\":\"全部论坛板块请求成功\",\"tagupdata\":\"123123123\",\"forumclass\":"
                        + totalMap.toString() + "}");
        
        // 记录日志
        String clasname = "全部版块---全部版块";
        String claspath = this.getClass().getName();
        AppuseLog add = new AppuseLog(request, response);
        add.LogAdd(USERID, username, USERID, ip, claspath, clasname);

        /*
         * 关闭数据库资源
         */
        if (db != null) {
            db.close();
            db = null;
        }

        if (page != null) {
            page = null;
        }

        

        out.flush();
        out.close();
    }
}
 

© 著作权归作者所有

The_Distant_Light
粉丝 0
博文 2
码字总数 914
作品 0
沧州
程序员
私信 提问
java 论坛的 获取全部版块信息

package com.api.article.list; import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import......

The_Distant_Light
2016/08/26
160
0
Spring MVC 使用Json格式传输数据,XXX.xxx 的嵌套数据无法解析

后台使用的是 Spring MVC RESTful + 前台 ExtJs4 REST数据代理,交互格式是JSON,使用Jackson进行数据解析。现在出现的问题是后台只能接受 类似下面的纯Json数据: 类似这种这种数据格式: ...

Mr_Kail
2014/08/10
2.8K
4
Apache Solr JSON Facet API 内部原理

自从我几年前加入了Cloudera 平台以进行提供搜索引擎分析,我一直积极的和上游的Solr社区开发新功能,这将推动更多有趣的应用程序运行在Cloudera搜索中(那是一个基于 Solr和Apache Hadoop的...

oschina
2016/10/28
2.1K
1
来自HeroKu的HTTP API 设计指南(中文版)

简介 本指南中文翻译者为 @Easy ,他是国内首家互联网人才拍卖网站 JobDeer.com 的创始人。转载请保留本信息。 本指南描述了一系列 HTTP+JSON API 的设计实践, 来自并展开于 Heroku Platfor...

失足处男的倒霉孩子
2014/09/05
1K
0
HTTP API 设计指南(中文版)

本指南描述了一系列 HTTP+JSON API 的设计实践, 来自并展开于 Heroku Platform API 的工作。本指南指导着Heroku内部API的开发,我们希望也能对Heroku以外的API设计者有所帮助。 … 目录 基础...

萨斯辈的呼唤
2015/09/18
155
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部