数据库字典及Redis缓存的结合使用

本文探讨了如何将MySQL数据库中的数值转换为前端显示的文字,并通过Redis缓存实现字典项的同步更新。文章详细介绍了在前端页面加载时获取字典项的值,以及两种方式(MySQL和Redis)在字典项变更时如何同步到前端。建议使用Redis设计,以dtype为field,以便根据类型快速获取数据。但MySQL更新时,Redis不会自动同步,需手动调用初始化方法来保持一致。
摘要由CSDN通过智能技术生成

一、思路:

  • 在设计前端页面时,展示的字段内容不应写死,因此引入了数据库字典的概念,如下图2。
  • 以本项目为例,在前端页面中的订单信息表(图1),其中的字段在数据库中的设计如图3。字段应为数据库字典表中所对应的dvalue。
  • 字典表中的字段解释:did:主键;dtype:字典项类型;dvalue:字段值,与前端组件的value属性绑定;dlabel:字段展示内容,与前端组件的label属性绑定。
  • 本文要达到的效果为:在MySQL数据库中修改dlabel的值,在前端页面应同步更新。

图1图1 前端页面
图2图2 数据库字典表tb_dictionary
图3图3 订单信息表tb_order

二、MySQL数据库中的数值如何在前端显示成文字形式?

  • tb_order中的字段存储的值均为数字形式,与字典表tb_dictionary相对应;
  • 进入页面时应触发Vue的初始化函数created,向后端发送请求,获取字典项的值。后端将dtype类型的数据(json数组的格式返回给前端),前端对这个json数组进行遍历,展示dlabel的值即可;
  • 具体代码见链接:https://blog.csdn.net/Hsssc/article/details/109374589

三、字典项改变,前端如何同步显示更新后的内容?

(一)初级:MySQL

@GetMapping("getColor")
    public ResponseEntity getColor() {
   
//        String hget = redisService.hget("Dictionary", "color");
//        List<NewDictionary> list = JSONArray.parseArray(hget, NewDictionary.class);
        List<NewDictionary> list = newDictionaryService.selectByType("color");
        return ResponseEntity.ok(new ResponseBean(StatusCode.OPERATE_SUCCESS, list));
    }
  • 调用MySQL语句,将改变了内容的数据从数据库返回给前端;
  • 逻辑比较简单,但是不建议操作MySQL数据;

(二)高级:Redis

@GetMapping("getColor")
    public ResponseEntity getColor() {
   
        String hget = redisService.hget("Dictionary", "color");
        List<NewDictionary> list = JSONArray.parseArray(hget, NewDictionary.class);
//        List<NewDictionary> list = newDictionaryService.selectByType("color");
        return ResponseEntity.ok(new ResponseBean(StatusCode.OPERATE_SUCCESS, list))
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值