小东Freeman + 关注

签名:我们爱我们的倒霉工作,也爱这千疮百孔的世界。

用Java做一个类似于微博QQ空间点赞的功能

发表于 11个月前   3334次查看    2评论  33 赞

点赞是一个互动性很强的功能,网站加入点赞可以增强用户之间的亲密度,可以利用点赞排出受欢迎文章或者其他的列表,所以今天教大家如何做一个类似于微博、QQ空间的点赞功能

需求分析:

首先要明确这个功能是需要登录的,一篇文章只允许一个用户点一次赞,并且在前端显示点赞人的个人信息,包括头像和昵称什么的


开发过程:

一、数据库设计

只需要在你需要点赞的文章表或者其他表添加一列zanList,将类型设置为mediumtext,就OK了


二、后端开发

1、点赞动作

(1)获取需要用到的值:文章id、用户id(凡是唯一性即可)

(2)获取数据库中已点赞列表

1
select zanList from article where 文章id=传过来的值

(3)拼接一个新的字符串、

1
2
3
4
5
6
7
8
9
10
 //从数据库获取的赞列表
 String zanList=获取的值
 //用户名或id
 String userid=传过来的用户id

 //拼接sql字符串,各个用户id用逗号隔开,如果数据库为空则为用户名加逗号,否则就原有的列表加用户名加逗号

             if(userlist==null){
              article.setZanList(userid+",");
             }else{
              article.setZanList(userlist+userid+",");
              }

(4)更新赞列表

1
update article set zanList=传过来更新好的值 where 文章id=传过来的值

2、获取点赞列表

(1)文章打开前获取赞的列表

1
select zanList from article where 文章id=传过来的值

(2)将获取的string字符串通过逗号转化为字符串数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 //将点赞列表排序成数列
            String[] zanList;
            //如果为空
            if(article.getZanList()==null){
                //设置赞的总数
                article.setZanCount(0);
            }else{
            //如果不为空将获取的string字符串通过逗号转化为字符串数组
                zanList=article.getZanList().split(",");
                //查询当前用户名是否点过赞
                for(int i=0;i<zanList.length;i++){
                    if(ip.equals(zanList[i])==true){
                        //点过赞设置前端显示属性
                        //..
                        //..
                        break;
                    }else{
                        //上述遍历完没点过赞前端显示属性
                        //...
                        //...
                    
                  //获取点赞列表的个人信息 
                  for(int i=0;i<zanList.length;i++){
                    //通过遍历zanlist的id挨个取出头像和用户名
                    //select touxiang,nicheng from user where id=zanList[i];
                    //然后放到arrayList里就可以了
                }
                 
                //设置赞的总数
                article.setZanCount(zanList.length);

三、前端开发

这里可以网上找些模板就可以了,比如我用的这个:http://www.funyan.cn/fman/g/173.html,点赞列表就用foreach遍历就可以了。


这样就实现Java做一个类似于微博QQ空间点赞的功能了,至于怎么取消赞什么的我就不说了,因为我还没有这个需求,逻辑什么的都差不多,不懂得可以联系我或者在下方评论,希望可以帮到你

33人已赞


本文由Fun言网 – 小东Freeman创作,转载请务必附上本文链接和出处,欢迎参与我们的付费投稿计划


你还没有登录,请先 登录注册!
文章评论2