前言 最近公司在做一个NFT商城的项目,大致就是一个只买卖数字产品的平台,项目中有个需求是用户可以给商品点赞,还需要获取商品的点赞总数,类似下图 起初感觉这功能很好实现,无非就是加个点赞表嘛,后来发现事情并没有这么简单. 一开始的设计是这样的,一共有三张表:商品表.用户表.点赞表,用户点赞的时候把用户id和商品id加到点赞表中,并给对应的商品点赞数+1.看起来没什么问题,逻辑也比较简单,但是测试的时候缺发现了奇怪的bug,点赞数量有时候会不正确,结果会比预期的大. 下面贴下关键代码(项目使用了M…
基于SpringBoot如何实现一个点赞功能? 解析: 基于 SpringCloud, 用户发起点赞.取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储. 点赞功能在很多系统中都有,但别看功能小,想要做好需要考虑的东西还挺多的. 点赞.取消点赞是高频次的操作,若每次都读写数据库,大量的操作会影响数据库性能,所以需要做缓存. 至于多久从 Redis 取一次数据存到数据库中,根据项目的实际情况定吧,我是暂时设了两个小时. 项目需求需要查看都谁点赞了,所…
微信小程序端的点赞功能其实没什么好介绍的,无非就是调用接口改变点赞状态和点赞数量.需要注意的是取消点赞时的处理,我这里为了减少服务器接口的调用,直接本地存一个变量,修改这里的变量值即可. 由于源码都相对简单,这里就直接贴源码了. wxml布局源码如下: <view class="button-area" catchtap="onLikeClick"> <block wx:if="{{isLike}}"> <text…
效果图 接口分析 通过上面的效果图可以看出,点赞入口主要是在书籍的详情页面. 而书籍详情页面,有以下几个功能是和点赞有关的: 获取点赞状态 点赞 取消点赞 所以项目中理论上与点赞相关的接口就以上三个. 点赞 model 的设计 既然明确了接口数量,那么下一步就是设计接口对应的model,通过model生成表格like,里面存放点赞数据. 那么需要存在哪些点赞数据呢? 这里简单分析后,记录一条点赞信息只需要保存以下的信息即可: 点赞 id 书籍 id 用户 id created_at delete…
学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot资源 三.SpringBoot系列优秀博文 3.1 博客园 3.2 CSDN 四.SpringBoot系列优质项目 4.1 SpringBoot学习项目 4.2 SpringBoot前后端分离项目 一.SpringBoot系列教程 以下内容几乎全部放在码云上. Gitee地址:https://git…
封面:洛小汐 作者:潘潘 若不是生活所迫,谁愿意背负一身才华. 前言 上节我们介绍了 < Mybatis系列全解(四):全网最全!Mybatis配置文件 XML 全貌详解 >,内容很详细( 也很枯燥),由于篇幅实在过于冗长,我预计大家想看完得花上两段上班地铁公交车的时间 ... 不过应该有让大家了解到 Mybatis 的核心配置文件 config.xml 全貌,其中的 元素即是我们本节准备登场介绍的 SQL 映射器,上节有介绍了三种引入 SQL 映射器的方式,本节我们就主要聊聊它的几个顶级元素…
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <Mybatis系列全解(三):Mybatis简单CRUD使用介绍> ,我们基本上手了 Mybatis 的增删改查操作,也感受到 Mybatis 的简单高效舒美,但是肯定有部分朋友对于 Mybatis 的配置文件只是了解基本组成和大致用法,尚无一套完整的结构记忆,所以本篇文章我们将详细的介绍 Mybatis…
以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗,为什么. String,Stringbuffer,StringBuilder的区别. ArrayList和LinkedList有什么区别. 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字 段,当new的时候,他们的执行顺序. 用过哪些Map类,都有什么区别,HashMap…
不多说,直接上干货! 缘由: (1)最近看到情侣零点送祝福,感觉还是很浪漫的事情,相信有很多人熬夜为了给爱的人送上零点祝福,但是有时等着等着就睡着了或者时间并不是卡的那么准就有点强迫症了,这是也许程序会解决我们的问题. (2)如果你女朋友需要天天给她微信发“晚安”,你一般怎么做呢?每天用手机敲出来,忘记了怎么办?设个闹钟,哥不扶墙,就服你. 作为程序员哥哥,你如果再怎么low,那就有点愧对你的身份了.一想,不就是一个定时任务吗?定时器就可以搞定.可,可.... 作为热门的java好像没有处理个人…
我的Springboot框架,欢迎关注: https://github.com/junneyang/common-web-starter Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo与Zookeeper.SpringMVC整合和使用(负载均衡.容错) - 好库文摘 User Guide-zh - Dubbo - Alibaba Open Sesame User Guide-zh - Dubbo - Alibaba Open Sesame 简单之美 | Dubbo架构设计详解 D…