您的位置:首页 > Web前端 > JavaScript

20180228.利用JsonArray实现功能:好友圈、我的微博。

2018-03-16 18:18 330 查看
需求是得到数据库的文章信息和关注者信息,需要分开保存为数组并取得。所以首先要写dao的方法,省略大部分,只写要点:
Connection conn=getConnection();
String sql="";
PreparedStatement pstmt;
ArrayList<essay> essayList=new ArrayList<essay>();
sql="SELECT *FROM essay WHERE user_name IN (SELECT follow_name FROM follow WHERE user_name = ?)";
try{
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, name);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
int id=rs.getInt("id");
String user_name = rs.getString("user_name");
String context = rs.getString("context");
Timestamp time=rs.getTimestamp("time");
essayList.add(new essay(id,user_name,context,time));
}
return essayList;
}catch(SQLException e){
e.printStackTrace();
return null;
}finally{
closeConnection(conn);
}
。只需要知道如何用Mysql简单的嵌套查询就可以。
后端servlet的代码实现传入一个用户名,得到他关注的人,并用之前写好的方法,找到这些人写的文章:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/html;charset=utf-8");
// 1. 取到前端提交的数据
String name = req.getParameter("name");

ArrayList<essay> List = new UserDAO().findByFriend(name);

// 创建一个json的对象,把结果保存到result键中
JsonArray jsonArray=new JsonArray();
JsonArray jsonArray1=new JsonArray();
JsonObject jsonOb=new JsonObject();
HttpSession session = req.getSession(); // 取到会话对象,准备保存用户名在会话中
// 在会话对象中,保存当前登录的用户名
resp.setContentType("application/json");
PrintWriter out = resp.getWriter();
for(int i=0;i<List.size();i++){
jsonArray.add(List.get(i).getContext());
jsonArray1.add(List.get(i).getUser_name());
}
jsonOb.add("result", jsonArray);
jsonOb.add("result1", jsonArray1);
out.println(jsonOb.toString());
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req,resp);
}

前端需要分别取得关注用户名和关注用户的文章,逻辑简单,后端给的数据就是两个JsonArray,分别取得,添加到组件的data就行了。挂载之前必须执行,所以要在钩子函数里面进行。
mounted: function () {

        if(sessionStorage.getItem("login_user")!=null){
        this.items.pop();
        this.$http.post('/api/UserManager/ReadFriendEssay?name='+sessionStorage.getItem('login_user'))
        .then((response)=>{
        for(var i in response.data.result){
        this.items.push({
    username:response.data.result1[response.data.result1.length-i-1],
    essay:response.data.result[response.data.result.length-i-1],
    })
        }
        }).catch(function(err){
       
  console.log(err);
        });
       
   
}else{

}

},
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: