主頁 > 資料庫 > 學習鋒迷商城的的筆記

學習鋒迷商城的的筆記

2021-10-06 09:13:30 資料庫

文章目錄

    • 鋒迷商城專案
      • 1.通過Maven聚合工程搭建專案:
        • 1. 創建一個Maven的父專案,然后修改它的pom.xml檔案,可以洗掉src等一些沒有用的目錄
        • 2.在父專案下面創建多個module,包括(common,beans,mapper,service,api)把它們全部打包成jar包
      • 3.由于mapper層需要呼叫beans層(pojo),需要在pom.xml檔案中,然后可以在mapper中加入相關的依賴,
      • 4.創建service需要呼叫mapper,和common,需要在pom.xml檔案中加上
      • 5.api層需要接收前端的請求所以需要我們創建一個SpringBoot工程,你可以創建一個Maven工程,然后加入相關的依賴
      • 6.api子工程,對外提供介面
    • 鋒迷商城資料庫設計
      • 2.軟體開發步驟
      • 3.資料庫設計流程
      • 3.資料建模工具PDMan
        • Spu和Sku的區別
      • 4.鋒城業務流程設計
        • 4.1用戶管理9業務流程分析
      • 5介面介紹
        • 5.1介面規范
      • 5.2Swagger(自動生成服務器介面的規范性檔案)
        • 5.2.1引入相關的依賴:
        • 5.2.2 創建相關的配置類
        • 5.2.3根據你的配置的埠號進行相關的測驗
        • 5.2.4 swagger提供了一套注解對每個介面進行詳細的說明
        • 5.2.5swagger-ui插件使用
          • 1.api的module加入依賴
          • 2.進行訪問,然后可以使用它進行相關的測驗
      • 一、鋒迷商城設計及實作用戶管理
        • 1.UserDao介面的創建:
        • 2.UserMapper.xml
        • 3.UserService
        • 4.UserServiceimpl:
        • 5.api模塊的UserController:
        • 6.ResultVO一個和前端進行資料互動的類
        • 7.在common模塊的MD5Utils類:
      • 二、逆向工程
        • 7.1逆向工程配置
        • 7.2在pom.xml檔案中指定generatorConfig.xml檔案的路徑
      • 三、跨域問題
      • 四、前端頁面的傳值
        • 4.1Cookie使用(自定義封裝一個js,cookie_utils.js)
        • 4.2localStorage
        • 4.3Vue實作登錄
      • 五、前后端分離開發用戶認證的問題
        • 5.1單體專案中:
        • 5.2前后端分離專案中
        • 基于token認證的用戶代碼實作
      • 六、JWT(json Web Token)一個別人封裝好的工具類生成相關的token
      • 6.1生成JWT
        • 6.2使用攔截器進行攔截
      • 6.3使用請求頭進行傳遞token
        • axios通過請求頭傳值 里面的引數用Headers 不用Params
        • 6.3.1 **CheckTokenInterceptor類** 前端會發送預險性請求(只有它通過以后才可以進行第二次請求),需要攔截器進行放行
      • 七首頁的分類串列的的實作
        • 7.1介面實作
        • 7.2業務層實作
        • 控制層實作
      • 八、商品的推薦功能實作
        • 8.1 流程分析
        • 8.2介面開發
          • 8.2.1資料庫的實作
        • ProductMapper檔案:
        • ProductImgMapper檔案:
        • ProductMapper.xml檔案實作
      • 8.2.2業務層實作
        • 8.2.3控制層實作
      • 九、商品詳情顯示(在Introduction.html進行相關的顯示)
        • 9.1介面實作
        • 9.1.1 商品詳情介面
      • 十、顯示商品評價的資訊(通過用戶和商品評論表進行相關的連表查詢)
        • 10.1 新建的VO,ProductCommentsVO (一對一的連表查詢可以不用在物體類中宣告另一個物體類)
    • 十一、添加購物車的功能實作
        • 10.1流程分析:
        • 10.2資料庫的相關的操作
        • 10.2.1 購買的數量的前端實作在vue的methods中添加+和-的點擊事件
        • 10.2.2給加入購物車這個按鈕添加點擊事件
    • 十二、添加購物車時候用戶未登錄
        • 12.1 添加購物車用戶未登錄,業務處理方式:
        • 12.2我們使用第三種難度最大的來
        • 12.3使用Layui進行添加購物車成功/失敗的提示
          • 12.3.1宣告layui的彈窗組件
        • 12.3.2成功失敗進行提示
    • 十三購物車的串列
        • 13.1資料庫dao介面的實作
        • 13.2pojo介面實作
        • 13.3修改購物車
          • 13.31通過這個進行購物車數量的修改:
          • 13.32changNum函式進行實作:
    • 十四購物車提交訂單結算功能實作
      • 14.1實作流程分析
    • 十五、訂單提交及支付流程
      • 15.1流程分析
      • 15.2訂單添加介面實作
      • 15.3資料庫操作
      • 15.4serviceimpl層實作 注意:這個方法需要加上@Transactional,也就是訂單生成的時候,快照也必須生成
    • swagger報錯解決
    • 十六 商品分類資訊的查詢
      • 16.1 流程分析
      • 16.2 介面開發
        • 16.2.1根據類別查詢商品介面

鋒迷商城專案

使用Maven聚合專案進行創建(一個maven的父專案多個maven的子專案),

可以在父專案pom.xml檔案中加上:

<package>pom<package>

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NA1kXE9E-1633446686620)(C:\Users\CourageAndLove\AppData\Roaming\Typora\typora-user-images\image-20210812151308862.pngred">注意一下 :訂單表的設計功能:因為訂單表只要用戶一下訂單,訂單表的相關資訊就不可以進行改變 ,所以需要進行地址的的快照和商品資訊的快照,這樣就算你臨時改變了價格的資訊或者其他的也沒有關系

購物車的設計:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xztkvKoC-1633446686626)(C:\Users\CourageAndLove\AppData\Roaming\Typora\typora-user-images\image-20210814213038578.pngred">(一對一的連表查詢可以不用在物體類中宣告另一個物體類)

package com.qfedu.fmmall.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import javax.persistence.Table;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductCommentsVO {


    private Integer productId;
    private String productName;
    private Integer orderItemId;

    private String isannonymouns;
    private Integer commType;
    private Integer commLevel;
    private String commImgs;
    private String sepcName;
    private Integer replyStatus;
    private String replyContent;
    private Date replyTime;
    private Integer isShow;


//用于封裝評論對應的用戶資料
    private Integer userId;
    private String username;
    private String nickname;
    private String userImg;


}

在Mapper定義相應的介面:

package com.qfedu.fmmall.dao;

import com.qfedu.fmmall.entity.ProductComments;
import com.qfedu.fmmall.entity.ProductCommentsVO;
import com.qfedu.fmmall.general.GeneralDao;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface ProductCommentsMapper extends GeneralDao<ProductComments> {

    public List<ProductCommentsVO> selectCommentsByProductId(int productId);
}

十一、添加購物車的功能實作

10.1流程分析:

點擊添加購物車---------商品、選擇套餐id,套餐屬性,數量,token-------------進行token的校驗

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-m6DHVLUt-1633446686639)(C:\Users\CourageAndLove\AppData\Roaming\Typora\typora-user-images\image-20210917194652463.pngred"> 注意一下資料庫的shopping_cart表不需要加上這兩個欄位,是通過product_img表和product表的column屬性來進行關聯的

13.3修改購物車

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a4sYcBBB-1633446686644)(C:\Users\CourageAndLove\AppData\Roaming\Typora\typora-user-images\image-20210924171559447.pngred"> 獲取生成商品快照的資料 只需在ShoppingCartVO中多加上一個stock欄位就好,然后在ShoppCartMapper.xml加上需要查詢的這個欄位

  • 保存訂單資訊(tkMapper)
  • 修改庫存(tkMapper)
  • 保存商品快照(tkMapper)
  • 15.4serviceimpl層實作 注意:這個方法需要加上@Transactional,也就是訂單生成的時候,快照也必須生成

    1. 生成OrderId的方法 UUID.random().toString()
    2. 通過時間戳生成System.currentTimeMillis()+(new Random().nextInt(9999)+100)+""
    package com.qfedu.fmmall.service.impl;
    
    import com.qfedu.fmmall.dao.OrdersItemMapper;
    import com.qfedu.fmmall.dao.OrdersMapper;
    import com.qfedu.fmmall.dao.ProductSkuMapper;
    import com.qfedu.fmmall.dao.ShoppingCartMapper;
    import com.qfedu.fmmall.entity.Orders;
    import com.qfedu.fmmall.entity.OrdersItem;
    import com.qfedu.fmmall.entity.ProductSku;
    import com.qfedu.fmmall.entity.ShoppingCartVO;
    import com.qfedu.fmmall.service.OrderService;
    import com.qfedu.fmmall.vo.ResultStatus;
    import com.qfedu.fmmall.vo.ResultVO;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    import tk.mybatis.mapper.entity.Example;
    
    import java.math.BigDecimal;
    import java.math.BigInteger;
    import java.sql.SQLException;
    import java.util.*;
    
    import static java.math.BigDecimal.*;
    
    @Service
    
    public class OrderServiceimpl implements OrderService{
    
        @Autowired
        private ShoppingCartMapper shoppingCartMapper;
        @Autowired
        private OrdersMapper ordersMapper;
        @Autowired
        private OrdersItemMapper ordersItemMapper;
        @Autowired
        private ProductSkuMapper productSkuMapper;
        /* userId 1(zhangsan) 3(houzhicong)
        *cids  "39,40,41"
        * @return
        *
        * */
    
    //    int userId, String receiverName,
    //    String receiverMobile,String address,
    //    double price,int payType,String orderRemark   把這些用Orders物件來接收
    
    
    //    保存訂單的步驟
    //    1.查詢選中購買的購物車詳情
    //    2. 校驗庫存
    //    3.保存訂單
    //    4.保存訂單快照
    //    5.購買成功需要洗掉購物車記錄
    //    可以知道這四個步驟需要同時成功或者同時失敗,符合一個事務的操作(ACID)
        @Transactional
        public Map<String,String> addOrder(List<Integer> cids, Orders orders) throws  SQLException{
             Map<String,String> map=new HashMap<>();
    //        根據cids查詢購物車的詳情記錄(包括庫存)
            List<ShoppingCartVO> shoppingCartVOList = shoppingCartMapper.selectShoppingcartByids(cids);
    
    
    //        校驗庫存
            boolean f=true;
    
            String untitled="";
            for (ShoppingCartVO sc :shoppingCartVOList
                    ) {
                if(Integer.valueOf(sc.getCartNum())>sc.getStock()){
                    f=false;
    
                }
    
    //            獲取所有的商品名稱,以,分割拼接成字串
                untitled=untitled+sc.getProductName()+",";
    
            }
            if(f){
    //            表示庫存充足進行保存
    //            1.userId  2 untitled名稱 3 收件人地址,姓名,電話,地址
    //            4. 總價格 5.支付方式
    //            6.創建 訂單的時間
    //            7.訂單初始狀態 1 待支付
            orders.setStatus(1);
            orders.setUntitled(untitled);
            orders.setCreateTime(new Date());
            orders.setCancelTime(new Date());
            orders.setDeliveryTime(new Date());
    
    //        生成訂單編號
                String orderId = UUID.randomUUID().toString().replace("-", "");
                orders.setOrderId(orderId);
    
    
    //            保存訂單
                int i=ordersMapper.insert(orders);
                if(i>0){
    
    
    //               ordersItem 生成商品快照
    //                List<OrdersItem> ordersItemList=new ArrayList<>();
                    for (ShoppingCartVO sc :shoppingCartVOList) {
    //                    生成訂單的編號
    
                        int cnum=Integer.valueOf(sc.getCartNum());
                      String itemid=System.currentTimeMillis()+(new Random().nextInt(9999)+100)+"";
                        String itemid1 = itemid.substring(1, 10);
    
    
    //                 注意一下double需要轉換為Bigdecimal型別
    
    
    //                public OrdersItem(Integer orderId, Integer productId,
    //                String productName,
    //                String productImg, Integer skuId, String skuName,
    //                BigDecimal productPrice, Integer buyCounts,
    //                BigDecimal totalAmount, Date basketDate, Date buyTime,
    //                Integer isComment)
                    int itemid2=Integer.parseInt(itemid1);
                    OrdersItem ordersItem=  new OrdersItem();
                    ordersItem.setOrderId(itemid2);
                    ordersItem.setProductId(Integer.valueOf(sc.getProductId()));
                    ordersItem.setProductName(sc.getProductName());
                    ordersItem.setProductImg(sc.getProductImg());
                    ordersItem.setSkuId(Integer.valueOf(sc.getSkuId()));
                        System.out.println(sc.getSkuName());
                        ordersItem.setSkuName(sc.getSkuName());
                    System.out.println(sc.getSellPrice());
                    ordersItem.setProductPrice(new BigDecimal(String.valueOf(sc.getProductPrice())));
    
                    ordersItem.setBuyCounts(cnum);
                    ordersItem.setTotalAmount(sc.getProductPrice());
                    ordersItem.setBasketDate(new Date());
                    ordersItem.setBuyTime(new Date());
                    ordersItem.setIsComment(0);
    
    //                ordersItemList.add(ordersItem);
                          int m=ordersItemMapper.insert(ordersItem);
    
                        }
    
    //                int j = ordersItemMapper.insertList(ordersItemList);
    //  扣減庫存???
    //                根據套餐Id修改庫存量
                    for (ShoppingCartVO sc :shoppingCartVOList
                    ) {
                        String skuId = sc.getSkuId();
                        int newStock=sc.getStock()-Integer.valueOf(sc.getCartNum());
    
    //                    Example example = new Example(ProductSku.class);
    //                    Example.Criteria criteria = example.createCriteria();
    //                    criteria.andEqualTo("skuId",skuId);
    
    
    //                    ProductSku productSku = productSkuMapper.selectByPrimaryKey(skuId);
                        ProductSku productSku=new ProductSku();
                        productSku.setSkuId(skuId);
                        productSku.setStock(String.valueOf(newStock));
    //                    productSku.setSkuImg(null);
    
                        productSkuMapper.updateByPrimaryKeySelective(productSku);
    
                    }
    
    //  保存訂單成功 洗掉購物車記錄
                    for (Integer cid:cids
                         ) {
                        shoppingCartMapper.deleteByPrimaryKey(cid);
    
                    }
    
                     map.put("orderId",orderId);
                     map.put("productNames",untitled);
    
                  return   map;
    
    
                }
    
    
    
            }else{
    //            不足
       return null;
    
            }
    
            return null;
        }
    }
    
    

    swagger報錯解決

    For input String :""

    在application.yml加上日志的配置:

    logging:
      level:
        io.swagger.models.parameters.AbstractSerializableParameter: error
    

    十六 商品分類資訊的查詢

    16.1 流程分析

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cKOFAXHr-1633446686646)(C:\Users\CourageAndLove\AppData\Roaming\Typora\typora-user-images\image-20210929154617257.png)]

    16.2 介面開發

    16.2.1根據類別查詢商品介面

    轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/305764.html

    標籤:其他

    上一篇:能源系統建模:利用gcam_reader批量匯出GCAM database資料

    下一篇:MySQL45講之主備資料一致性

    標籤雲
    其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

    熱門瀏覽
    • GPU虛擬機創建時間深度優化

      **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

      uj5u.com 2020-09-10 06:09:13 more
    • 可編程網卡芯片在滴滴云網路的應用實踐

      **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

      uj5u.com 2020-09-10 06:10:21 more
    • 滴滴資料通道服務演進之路

      **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

      uj5u.com 2020-09-10 06:11:05 more
    • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

      **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

      uj5u.com 2020-09-10 06:11:29 more
    • MPP (Massively Parallel Processing)大規模并行處理

      1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

      uj5u.com 2020-09-10 06:11:41 more
    • 滴滴資料倉庫指標體系建設實踐

      **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

      uj5u.com 2020-09-10 06:12:52 more
    • 單表千萬行資料庫 LIKE 搜索優化手記

      我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

      uj5u.com 2020-09-10 06:13:25 more
    • 滴滴Ceph分布式存盤系統優化之鎖優化

      **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

      uj5u.com 2020-09-10 06:14:51 more
    • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

      之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

      uj5u.com 2020-09-10 06:14:59 more
    • 爬蟲日志監控 -- Elastc Stack(ELK)部署

      傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

      uj5u.com 2020-09-10 06:15:05 more
    最新发布
    • day02-2-商鋪查詢快取

      功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

      uj5u.com 2023-04-20 08:33:24 more
    • MySQL中binlog備份腳本分享

      關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

      uj5u.com 2023-04-20 08:28:06 more
    • day02-短信登錄

      功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

      uj5u.com 2023-04-20 08:27:27 more
    • 快取與資料庫雙寫一致性幾種策略分析

      本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

      uj5u.com 2023-04-20 08:26:48 more
    • sql陳述句優化

      問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

      uj5u.com 2023-04-20 08:26:35 more
    • 云時代,MySQL到ClickHouse資料同步產品對比推薦

      ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

      uj5u.com 2023-04-20 08:26:29 more
    • sql陳述句優化

      問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

      uj5u.com 2023-04-20 08:25:13 more
    • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

      Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

      uj5u.com 2023-04-20 08:24:54 more
    • day02-2-商鋪查詢快取

      功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

      uj5u.com 2023-04-20 08:24:03 more
    • day02-短信登錄

      功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

      uj5u.com 2023-04-20 08:23:11 more