微信小程序开发,诗词鉴赏app,诗词推荐实现(二)

  1. 微信小程序开发,诗词鉴赏app(一): https://blog.csdn.net/jky_yihuangxing/article/details/143501681
  2. 微信小程序开发,诗词鉴赏app,诗词推荐实现(二):https://blog.csdn.net/jky_yihuangxing/article/details/143562367
  3. 微信小程序开发,诗词鉴赏app,诗词搜索实现(三):https://blog.csdn.net/jky_yihuangxing/article/details/143566194

文章目录

    • 1. 诗词推荐实现原理
    • 2. 代码实现过程
    • 3. 实现效果
    • 4. 关于本人其它项目的介绍

1. 诗词推荐实现原理

通过用户的浏览量,来实现诗词的推荐

2. 代码实现过程

  1. 因为推荐是通过浏览量来实现的,所以需要创建一个history_table历史记录表,如下图所示:

在这里插入图片描述
其中poetry_id为诗词表里面的主键id,history_table会通过amount这个浏览量字段,获取到当前浏览量对应的poetry_id,然后通过poetry_id查询诗词表里面的诗词所有信息(这里涉及到多表联查)

  1. springBoot服务端接口设计
/*** 添加浏览历史*/@RequestMapping(value = "addHistory", method = RequestMethod.GET)@ResponseBodypublic HttpResponse<HistoryInfo> addHistory(HistoryInfo historyInfo) {HttpResponse<HistoryInfo> httpResponse = new HttpResponse<>(StatusCode.Success);//判断是否添加过HistoryInfo history = userService.queryHistory(historyInfo);if (history == null) {int row = userService.addHistory(historyInfo);if (row > 0) {httpResponse.setMsg("添加成功");httpResponse.setCode(StatusCode.Success.getCode());} else {httpResponse.setMsg("添加失败");httpResponse.setCode(StatusCode.Fail.getCode());}} else {int row = userService.updateHistory(historyInfo);if (row > 0) {httpResponse.setMsg("更新成功");httpResponse.setCode(StatusCode.Success.getCode());} else {httpResponse.setMsg("更新失败");httpResponse.setCode(StatusCode.Fail.getCode());}}httpResponse.setData(new HistoryInfo());return httpResponse;}

推荐接口设计

    /*** 推荐*/@RequestMapping(value = "queryRecommend", method = RequestMethod.GET)@ResponseBodypublic HttpResponse<HistoryListInfo> queryRecommend() {HttpResponse<HistoryListInfo> httpResponse = new HttpResponse<>(StatusCode.Success);List<HistoryInfo> historyInfoList = userService.queryRecommend();httpResponse.setData(new HistoryListInfo(historyInfoList));return httpResponse;}

代码应该不难理解,也写关键点的注释。首先要判断history_table历史记录表里面有没有添加过(也就是浏览过没有),如果没有就添加历史记录,否则就是更新浏览历史记录表,也就是修改amount字段+1

  1. sql语句编写
    <!--   添加浏览历史--><insert id="addHistory" parameterType="com.app.chinese.poetry.domain.HistoryInfo">insert into history_tablevalues(#{history_id},#{poetry_id},#{amount})</insert><!--   判断是否存在记录--><select id="queryHistory" parameterType="java.lang.Integer" resultType="com.app.chinese.poetry.domain.HistoryInfo">select * from history_table where poetry_id = #{poetry_id}</select><!--   更新浏览历史--><update id="updateHistory" parameterType="com.app.chinese.poetry.domain.HistoryInfo">update history_table<set>amount = amount + 1</set>where poetry_id = #{poetry_id}</update><!--    推荐--><select id="queryRecommend" resultMap="historyLists">select h.*,p.*from history_table hJOIN poetry_table p ON h.poetry_id = p.poetry_idwhere h.amount > 10</select>

where h.amount > 10 这里指 amount 浏览量大于10就查出来,这个可以根据自己项目需求来设置大小即可

JOIN ON 实现多表联查

这里注意:数据库的增,删,改,查语法,使用的是MyBatis来实现的

3. 实现效果

在这里插入图片描述

4. 关于本人其它项目的介绍

本人在b站录制的一些视频教程项目,免费供大家学习

  1. Android新闻资讯app实战:https://www.bilibili.com/video/BV1CA1vYoEad/?vd_source=984bb03f768809c7d33f20179343d8c8
  2. Androidstudio开发购物商城实战:https://www.bilibili.com/video/BV1PjHfeXE8U/?vd_source=984bb03f768809c7d33f20179343d8c8
  3. Android开发备忘录记事本实战:https://www.bilibili.com/video/BV1FJ4m1u76G?vd_source=984bb03f768809c7d33f20179343d8c8&spm_id_from=333.788.videopod.sections

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于诊断中的各种时间参数

前言&#xff1a; 因为不会转载&#xff0c;故在这里贴出原文连接&#xff0c;写的非常好&#xff01;条理清晰&#xff0c;一遍看懂king110108 原文链接&#xff1a;UDS之时间参数总结篇_uds时间参数-CSDN博客 以下内容是我自己对这篇文章的一些备注和理解&#xff0c;以及从测…

技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 2

在上期 Part 1文章中&#xff0c;我们介绍了从 v2023 版本开始&#xff0c;虚拟风洞VWT&#xff08;Virtual Wind Tunnel&#xff09;模块合并到HyperMesh CFD中。用户在VWT模块中完成LBM求解器ultraFluidX的前处理设置&#xff0c;导出参数文件XML和模型文件STL&#xff0c;并…

H7-TOOL的CAN/CANFD助手增加帧发送成功标识支持, 继续加强完善功能细节

2.27版本固件正式携带此功能&#xff0c;包括之前做的负载率检测和错误信息展示也将集成到这个版本固件中。 对于接收&#xff0c;我们可以直接看到效果&#xff0c;而发送不行&#xff0c;所以打算在发送的地方展示下发送成功标识。CAN发送不像串口&#xff0c;需要等待应答后…

mysql5安装

1.下载安装包 https://downloads.mysql.com/archives/community/ mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar2.安装依赖 yum -y install perl yum -y install net-tools yum install numactl libaio libaio-devel -y也可…

大模型应用编排工具Dify二开之工具和模型页面改造

1.前言 简要介绍下 dify&#xff1a; ​ 一款可以对接市面上主流大模型的任务编排工具&#xff0c;可以通过拖拽形式进行编排形成解决某些业务场景的大模型应用。 背景信息&#xff1a; ​ 环境&#xff1a;dify-0.8.3、docker-21 ​ 最近笔者在做 dify的私有化部署和二次…

开放寻址法、链式哈希数据结构详细解读

一、开放寻址法&#xff08;Open Addressing&#xff09; 1. 定义 开放寻址法是一种哈希冲突解决策略&#xff0c;所有元素都存储在哈希表中。当发生冲突时&#xff0c;即两个键计算出的哈希值相同时&#xff0c;会按照一定的探查序列查找下一个可用的位置来存储新元素。 2.…

并查集(基础学习与应用)

并查集 基本原理&#xff1a; 对于多个集合&#xff0c;每个集合中的多个元素用一颗树的形式表示&#xff0c;根节点的编号即为整个集合的编号&#xff0c;每个树上节点存储其父节点&#xff0c;使得当前集合的每个子节点都可以通过对父节点的询问来找到根节点&#xff0c;根…

基于 Encoder-only 架构的大语言模型

基于 Encoder-only 架构的大语言模型 Encoder-only 架构 Encoder-only 架构凭借着其独特的双向编码模型在自然语言处理任务中表现出色&#xff0c;尤其是在各类需要深入理解输入文本的任务中。 核心特点&#xff1a;双向编码模型&#xff0c;能够捕捉全面的上下文信息。 En…

sql数据库-DQL-条件查询

条件查询 SELECT 字段列表 FROM 表名 WHERE 条件列表; 条件列表 比较运算符功能> 大于>大于等于 < 小于<小于等于等于!不等于between...and...某个范围之间&#xff08;闭区间&#xff09;IN(...)在in之后的列表中的值&#xff0c;多选一LIKE 通…

Android CCodec Codec2 (二十)C2Buffer与Codec2Buffer

在阅读Codec2框架代码时&#xff0c;我们可能会发现好几个名称中都带有“buffer”的类&#xff0c;如MediaCodecBuffer、ABuffer、CCodecBuffers、Codec2Buffer以及C2Buffer。它们分别是什么&#xff1f;各自承担着什么功能&#xff1f;它们之间有何联系&#xff1f;本文将围绕…

WPF怎么通过RestSharp向后端发请求

1.下载RestSharpNuGet包 2.请求类和响应类 public class ApiRequest {/// <summary>/// 请求地址/// </summary>public string Route { get; set; }/// <summary>/// 请求方式/// </summary>public Method Method { get; set; }/// <summary>//…

SQL Server 日志记录

SQL Server是一个关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;旨在有效地存储、组织、检索和操作大量结构化数据。SQL Server日志是监控数据库活动、排查问题和确保数据一致性的基础&#xff0c;这些日志记录了SQL Server实例中发生的事件的时间顺序。它们充当…

书生实战营第四期-基础岛第三关-浦语提示词工程实践

一、基础任务 任务要求&#xff1a;利用对提示词的精确设计&#xff0c;引导语言模型正确回答出“strawberry”中有几个字母“r”。 1.提示词设计 你是字符计数专家&#xff0c;能够准确回答关于文本中特定字符数量的问题。 - 技能&#xff1a; - &#x1f4ca; 分析文本&…

默认 iOS 设置使已锁定的 iPhone 容易受到攻击

苹果威胁研究的八个要点 苹果手机间谍软件问题日益严重 了解 Apple 苹果的设备和服务器基础模型发布 尽管人们普遍认为锁定的 iPhone 是安全的&#xff0c;但 iOS 中的默认设置可能会让用户面临严重的隐私和安全风险。 安全研究员 Lambros 通过Pen Test Partners透露&#…

双指针算法篇——一快一慢须臾之间解决问题的飘逸与灵动(3)

前言&#xff1a;本篇来到双指针算法介绍的最终篇&#xff0c;该文将通过三个同类型但难度逐渐累增的题目&#xff0c;再次强化对双指针算法的理解和运用。 相关题目及讲解 一. 两数之和 题目链接&#xff1a;LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetC…

sparkSQL的UDF,最常用的regeister方式自定义函数和udf注册方式定义UDF函数 (详细讲解)

- UDF&#xff1a;一对一的函数【User Defined Functions】 - substr、split、concat、instr、length、from_unixtime - UDAF&#xff1a;多对一的函数【User Defined Aggregation Functions】 聚合函数 - count、sum、max、min、avg、collect_set/list - UDTF&#xff1a;…

Springcloud高校选课管理系统-计算机毕业设计源码27115

摘 要 随着信息技术的快速发展和高校信息化建设的深入推进&#xff0c;选课管理系统作为高校教育信息化建设的重要组成部分&#xff0c;其重要性和紧迫性日益凸显。传统的选课管理系统往往采用单体架构&#xff0c;存在系统耦合度高、可维护性差、扩展性不强等问题&#xff0c;…

ChatGPT 新体验:AI 搜索功能与订阅支付指南

就在凌晨&#xff0c;在 ChatGPT 迎来两周岁生日之际&#xff0c;OpenAI 重磅发布了 ChatGPT 的全新人工智能搜索体验。 期待已久的时刻终于到来&#xff0c; ChatGPT 正式转型成为一款革命性的 AI 搜索引擎&#xff01; 先来看看 ChatGPT 搜索&#xff1a;这次不是简单的加个…

奇瑞汽车:降阶模型在新能源汽车热管理仿真上的应用

随着新能源汽车的发展&#xff0c;对仿真技术的要求也越来越高。那么奇瑞汽车利用降阶模型在新能源汽车热管理仿真上做了哪些应用呢&#xff1f;本次内容主要从四个方面展开介绍&#xff1a; 1、 奇瑞汽车简介&#xff1b; 2、 热管理降阶模型开发的背景&#xff1b; 3、 高低…

RPC核心实现原理

目录 一、基本原理 二、详细步骤 三、额外考虑因素 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种计算机通信协议&#xff0c;也是一种用于实现分布式系统中不同节点之间进行通信和调用的技术。其实现原理主要可以分为以下几个步骤&…