国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

03 SpringBoot實(shí)戰(zhàn) -微頭條之首頁(yè)門戶模塊(跳轉(zhuǎn)某頁(yè)面自動(dòng)展示所有信息+根據(jù)hid查詢文章全文并用樂(lè)觀鎖修改閱讀量)

這篇具有很好參考價(jià)值的文章主要介紹了03 SpringBoot實(shí)戰(zhàn) -微頭條之首頁(yè)門戶模塊(跳轉(zhuǎn)某頁(yè)面自動(dòng)展示所有信息+根據(jù)hid查詢文章全文并用樂(lè)觀鎖修改閱讀量)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.1 自動(dòng)展示所有信息

  1. 需求描述: 進(jìn)入新聞首頁(yè)portal/findAllType, 自動(dòng)返回所有欄目名稱和id
    03 SpringBoot實(shí)戰(zhàn) -微頭條之首頁(yè)門戶模塊(跳轉(zhuǎn)某頁(yè)面自動(dòng)展示所有信息+根據(jù)hid查詢文章全文并用樂(lè)觀鎖修改閱讀量),SpringBoot,spring boot,java,后端

  2. 接口描述

    url地址:portal/findAllTypes

    請(qǐng)求方式:get

    請(qǐng)求參數(shù):無(wú)

    響應(yīng)數(shù)據(jù):

    成功

{
   "code":"200",
   "message":"OK"
   "data":{
            [
                {
                    "tid":"1",
                    "tname":"新聞"
                },
                {
                    "tid":"2",
                    "tname":"體育"
                },
                {
                    "tid":"3",
                    "tname":"娛樂(lè)"
                },
                {
                    "tid":"4",
                    "tname":"科技"
                },
                {
                    "tid":"5",
                    "tname":"其他"
                }
            ]
    }
}
  1. 代碼編寫
    PortalController :
package com.sunsplanter.controller;

import com.sunsplanter.service.TypeService;
import com.sunsplanter.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("portal")
public class PortalController {

    @Autowired
    private TypeService typeService;

    @GetMapping("findAllType")
    public Result findAllTypes(){
        Result result = typeService.findAllTypes();
        return result;
    }
}

TypeService:

package com.sunsplanter.service;

import com.sunsplanter.pojo.Type;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunsplanter.utils.Result;

public interface TypeService extends IService<Type>{


    Result findAllTypes();
}

TypeServiceImpl:

package com.sunsplanter.service.impl;

import com.sunsplanter.utils.Result;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sunsplanter.mapper.TypeMapper;
import com.sunsplanter.pojo.Type;
import com.sunsplanter.service.TypeService;
@Service
public class TypeServiceImpl extends ServiceImpl<TypeMapper, Type> implements TypeService{

    @Autowired
    private TypeMapper typeMapper;


    @Override
    public Result findAllTypes() {
        //不傳條件構(gòu)造器,即查詢?nèi)?/span>
        List<Type> types = typeMapper.selectList(null);

        return Result.ok(types);

    }
}

達(dá)到的效果是,不需要任何參數(shù), 只要訪問(wèn)portal/findAllType, 就返回news_type表中的所有數(shù)據(jù)(version和is_deleted除外, 因?yàn)橐言趯?shí)體類中注解為版本和邏輯刪除)

1.2 - 查詢頭條詳情

  1. 需求描述

03 SpringBoot實(shí)戰(zhàn) -微頭條之首頁(yè)門戶模塊(跳轉(zhuǎn)某頁(yè)面自動(dòng)展示所有信息+根據(jù)hid查詢文章全文并用樂(lè)觀鎖修改閱讀量),SpringBoot,spring boot,java,后端
- 用戶點(diǎn)擊"查看全文"時(shí),向服務(wù)端發(fā)送新聞id
- 后端根據(jù)新聞id查詢完整新聞文章信息并返回
- 后端要同時(shí)讓新聞的瀏覽量+1

  1. 接口描述

url地址:portal/showHeadlineDetail

請(qǐng)求方式:post

請(qǐng)求參數(shù): Param傳參hid

響應(yīng)數(shù)據(jù):

成功則文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-821512.html

{
    "code":"200",
    "message":"success",
    "data":{
        "headline":{
            "hid":"1",                     // 新聞id 
            "title":"馬斯克宣布 ... ...",   // 新聞標(biāo)題
            "article":"... ..."            // 新聞?wù)?/span>
            "type":"1",                    // 新聞所屬類別編號(hào)
            "typeName":"科技",             // 新聞所屬類別
            "pageViews":"40",              // 新聞瀏覽量
            "pastHours":"3" ,              // 發(fā)布時(shí)間已過(guò)小時(shí)數(shù)
            "publisher":"1" ,              // 發(fā)布用戶ID
            "author":"張三"                 // 新聞作者
        }
    }
}
  1. 代碼實(shí)現(xiàn)
    1. controller
      @Override
        public Result showHeadlineDetail(Integer hid) {
            /**注意響應(yīng)的數(shù)據(jù)是雙層嵌套,即data包裹headline,headline包含查詢到的屬性參數(shù)
             * 先用一個(gè)名為dataMap的Map以鍵值對(duì)的形式存儲(chǔ)返回的屬性參數(shù)
             * 再將名為data的Map是為一個(gè)值,搭配上名為headline的鍵
             * 存儲(chǔ)進(jìn)一個(gè)名為headlineMap的Map中,最終將Map作為參數(shù)傳入Result,返回Result
             */
            Map dataMap = headlineMapper.queryDetailMap(hid);
            Map headlineMap = new HashMap<>();
            headlineMap.put("headline",dataMap);

            /*樂(lè)觀鎖修改閱讀量+1
            *上面已經(jīng)通過(guò)hid查到了所有信息,包括當(dāng)時(shí)的版本號(hào),假設(shè)是2
            * 將2直接賦值到新建的headline的Version中
            * 在最后一句update中,MP會(huì)幫我們檢查,如果此時(shí)該條記錄的版本號(hào)仍為2,
            * 則說(shuō)明這段時(shí)間沒(méi)有人修改過(guò)這條記錄,可以正常修改
             */

            Headline headline = new Headline();
            headline.setHid(hid);
            headline.setPageViews((Integer) headlineMap.get("pageViews")+1); //閱讀量+1
            headline.setVersion((Integer) headlineMap.get("version")); //設(shè)置版本
            headlineMapper.updateById(headline);

            return Result.ok(headlineMap);
        }
  1. HeadlineMapper.java接口
/**
 * 分頁(yè)查詢頭條詳情
 * @param hid
 * @return
 */
Map selectDetailMap(Integer hid);
      mapperxml:
<!--    Map selectDetailMap(Integer hid);
查詢目標(biāo)(三表拼接):
            "hid":"1",                     // 新聞id 
            "title":"馬斯克宣布 ... ...",   // 新聞標(biāo)題
            "article":"... ..."            // 新聞?wù)?/span>
            "type":"1",                    // 新聞所屬類別編號(hào)
            "typeName":"科技",             // 新聞所屬類別
            "pageViews":"40",              // 新聞瀏覽量
            "pastHours":"3" ,              // 發(fā)布時(shí)間已過(guò)小時(shí)數(shù)
            "publisher":"1" ,              // 發(fā)布用戶ID
            "author":"張三"                 // 新聞作者
            -->

/*
left join news_type t on h.type = t.tid: 這是一個(gè)左連接,將 "news_headline" 表與 "news_type" 表連接。
它的條件是 "news_headline" 表的 "type" 字段與 "news_type" 表的 "tid" 字段相匹配。
news_type中tid匹配的行會(huì)右拼接在headline表中

left join news_user u on h.publisher = u.uid: 這也是一個(gè)左連接,將 "news_headline" 表與 "news_user" 表連接。
連接條件是 "news_headline" 表的 "publisher" 字段與 "news_user" 表的 "uid" 字段相匹配。
news_user中tid匹配的行會(huì)右拼接在headline表中(headline先拼type,再拼user)

左連接確保左表保留所有信息,右表僅提取符合條件的元素匹配左表
*/
<select id="selectDetailMap" resultType="map">
    select hid,title,article,type, h.version ,tname typeName ,page_views pageViews
            ,TIMESTAMPDIFF(HOUR,create_time,NOW()) pastHours,publisher
                    ,nick_name author from news_headline h
                        left join news_type t on h.type = t.tid
                                left join news_user u  on h.publisher = u.uid
                                            where hid = #{hid}
</select>

到了這里,關(guān)于03 SpringBoot實(shí)戰(zhàn) -微頭條之首頁(yè)門戶模塊(跳轉(zhuǎn)某頁(yè)面自動(dòng)展示所有信息+根據(jù)hid查詢文章全文并用樂(lè)觀鎖修改閱讀量)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • su-03t語(yǔ)音模塊固件的制作與燒錄(stm32實(shí)戰(zhàn))

    su-03t語(yǔ)音模塊固件的制作與燒錄(stm32實(shí)戰(zhàn))

    目錄 su-03t簡(jiǎn)介 管腳定義 ??智能公元語(yǔ)音固件制作?? 賬號(hào)注冊(cè) 創(chuàng)建產(chǎn)品 產(chǎn)品配置 喚醒詞自定義 命令詞自定義 發(fā)音人配置 其他配置 生成和下載語(yǔ)音固件 固件燒錄 下載SDK固件燒錄工具 SU-03T驅(qū)動(dòng)分享 SU-03T 是一款低成本、低功耗、小體積的離線語(yǔ)音識(shí)別模組,能快速應(yīng)用

    2024年04月11日
    瀏覽(14)
  • SpringBoot + Vue 企業(yè)門戶宣傳網(wǎng)站

    SpringBoot + Vue 企業(yè)門戶宣傳網(wǎng)站

    項(xiàng)目的初衷是給某某公司做一個(gè)產(chǎn)品宣傳網(wǎng)頁(yè),由于第一次做這種宣傳網(wǎng)頁(yè)沒(méi)有太多的靈感于是到網(wǎng)上去找了一些模板,但是發(fā)現(xiàn)網(wǎng)上現(xiàn)有的模板大多都是基于php語(yǔ)言開發(fā)的。但是甲方需要我們使用最新的前后端分離的開發(fā)方式來(lái)開發(fā),于是決定使用 springboot + vue 來(lái)來(lái)發(fā)這個(gè)

    2024年02月06日
    瀏覽(21)
  • 【RabbitMQ實(shí)戰(zhàn)】 03 SpringBoot RabbitMQ生產(chǎn)者和消費(fèi)者示例

    上一節(jié)我們寫了一段原生API來(lái)進(jìn)行生產(chǎn)和消費(fèi)的例子。實(shí)際上SpringBoot對(duì)原生RabbitMQ客戶端做了二次封裝,讓我們使用API的代價(jià)更低。 依賴引入 RabbitMQ的配置如下 每個(gè)配置的具體含義,詳見(jiàn)配置 代碼說(shuō)明 使用RabbitTemplate可以發(fā)送消息 這個(gè)Controller定義了一個(gè)發(fā)送的接口,調(diào)用

    2024年02月07日
    瀏覽(26)
  • 代碼模版-登錄成功后跳轉(zhuǎn)首頁(yè)

    默認(rèn)已經(jīng)安裝了 vue-router 路由依賴 已經(jīng)寫好了 src/router/index.js 和 src/views/login.vue 組件了 在 src/views/login.vue 組件中添加這樣的 js

    2024年02月15日
    瀏覽(21)
  • 微信小程序跳轉(zhuǎn)至京東店鋪首頁(yè)

    微信小程序跳轉(zhuǎn)至京東店鋪首頁(yè)

    網(wǎng)上找了很多方法,都是根據(jù)打開某一個(gè)屬于自己的小程序后臺(tái),開啟獲取小程序頁(yè)面路徑的權(quán)限。但是都是2020年之前的文章,可能更新后已經(jīng)無(wú)法獲取其他小程序的具體頁(yè)面路徑了,所以行不通。 所以在這里介紹一下我的方法 京東小程序appId:wx91d27dbf599dff74 或者點(diǎn)開京東

    2024年02月15日
    瀏覽(17)
  • B048-cms03-前端首頁(yè)文章列表展示 頁(yè)面靜態(tài)化

    抽取公共資源 抽取導(dǎo)航條和側(cè)邊欄 1.新建/WEB-INF/views/common文件夾 2.新建header.jsp和leftMenu.jsp 3.引入Index.jsp和Article.jsp 抽取靜態(tài)資源 新建topStatic.jsp文件 引入Index.jsp和Article.jsp 新建buttomStatic.jsp 引入Index.jsp和Article.jsp 抽取js文件 在WEB-INF外部/WebContent/static/system/js下新建article文件夾

    2024年02月11日
    瀏覽(44)
  • 交友項(xiàng)目【完善用戶信息&上傳用戶頭像】功能跳轉(zhuǎn)首頁(yè)

    交友項(xiàng)目【完善用戶信息&上傳用戶頭像】功能跳轉(zhuǎn)首頁(yè)

    目錄 1:保存用戶信息 1.1:接口地址 1.2:流程分析 1.3:代碼實(shí)現(xiàn) 2.4: 測(cè)試 2:上傳用戶頭像 2.1:接口地址 2.2:流程分析 2.3:代碼實(shí)現(xiàn) 2.4:測(cè)試 在進(jìn)行完手機(jī)號(hào)碼校驗(yàn)完畢之后,我們會(huì)進(jìn)入完善用戶信息頁(yè)面 ? 啟動(dòng)虛擬機(jī):首次登錄---完善資料 http://192.168.136.160:3000/proj

    2023年04月12日
    瀏覽(25)
  • Web實(shí)戰(zhàn)丨基于django+html+css+js的學(xué)院門戶網(wǎng)站

    Web實(shí)戰(zhàn)丨基于django+html+css+js的學(xué)院門戶網(wǎng)站

    本期內(nèi)容:基于Django+Html+Css+JavaScript的學(xué)院門戶網(wǎng)站 項(xiàng)目需求: python django 項(xiàng)目下載地址:https://download.csdn.net/download/m0_68111267/88726654 Web系統(tǒng)與技術(shù)課程旨在培養(yǎng)學(xué)生對(duì)Web系統(tǒng)的設(shè)計(jì)、開發(fā)和管理能力。課程內(nèi)容包括Web系統(tǒng)的基本概念、體系結(jié)構(gòu)和工作原理,以及常用的Web開

    2024年02月02日
    瀏覽(103)
  • 若依:如何去掉首頁(yè),設(shè)置登錄后跳轉(zhuǎn)到第一個(gè)路由菜單

    若依:如何去掉首頁(yè),設(shè)置登錄后跳轉(zhuǎn)到第一個(gè)路由菜單

    若依系統(tǒng)是一個(gè)很好用的,開源的前端后臺(tái)管理系統(tǒng)。 最近公司有一個(gè)需求,需要把默認(rèn)的首頁(yè)隱藏,登錄后直接跳轉(zhuǎn)到路由菜單返回的第一個(gè)頁(yè)面。 查找了不少資料,但是都沒(méi)有實(shí)際的解決方案。 ?不過(guò)最好自己還是實(shí)現(xiàn)了這個(gè)功能。 步驟如下: 1、首先應(yīng)當(dāng)找到項(xiàng)目里

    2023年04月09日
    瀏覽(155)
  • SpringBoot項(xiàng)目多模塊打包部署Docker實(shí)戰(zhàn)

    SpringBoot項(xiàng)目多模塊打包部署Docker實(shí)戰(zhàn)

    我們好多程序員都只關(guān)注功能代碼的編寫,在一些運(yùn)維工作上則顯得略有不足。這篇文章通過(guò)介紹最常見(jiàn)的Maven管理的Spring Boot項(xiàng)目多模塊打包部署Docker來(lái)介紹一下項(xiàng)目部署過(guò)程中操作流程和幾個(gè)需要注意的點(diǎn)。文章假設(shè)讀者有前面提到的技術(shù)點(diǎn)的前置知識(shí),不過(guò)沒(méi)有也沒(méi)關(guān)系

    2024年02月13日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包