当前位置: 首页 > 编程笔记 >

JAVA项目字典与缓存搭配使用方法解析

闻人河
2023-03-14
本文向大家介绍JAVA项目字典与缓存搭配使用方法解析,包括了JAVA项目字典与缓存搭配使用方法解析的使用技巧和注意事项,需要的朋友参考一下

字典数据是什么?

 这里说了字典不是软件工程中说的数据字典。

字典数据:用于动态设置某对象的属性是属于在一个可列举的数据范围内的某一类型数据,使用字典类型作为该类别属性的唯一标识

如:用户类型:学生,老师,家长,校长等

有什么作用?

  字典数据由两个表组成:字典类型表 dict_type,字典类型数据表 dict_data

  这个数据相当于java中的枚举类,可以被使用于前端的数据展示,下拉框数据集使用。

没有数据字典时业务操作方法:

  定义学生枚举类,在代码中使用枚举类的key进行数据保存,在查询数据后,转换key对应的中文名称label标签返回给前端。

  缺点:如新增用户类型,修改学生类型对应中文名称时,需要修改代码。

使用字典时业务操作方法。  

  后端业务数据存储的是字典类型的key值,即label标签表示学生类型对应的key值 student,

    新增数据时前端通过下拉菜单获取学生类型某一个类型key进行新增,查询数据时根据字典数据表的用户类型作为下拉框查询条件选择。

  优点:当key为student的数据中文名称发生改变时,不需要后端进行代码修改。

    如新增用户时,设置用户的类型,下拉框的数据可以从数据库获取数据,不用前端关心数据集的内容,

在业务中使用

不使用缓存的方式使用字典数据:

  业务中使用方式,返回用户列表数据,将用户类型的字典数据从数据库中查询出来,然后进行转换。

  在前端查询数据时,前端查询用户类型的下拉数据集,作为条件,传类型key值作为查询条件查询数据。

与缓存搭配使用字典数据。

自己控制数据缓存。灵活性高:Ehcache,Redis等内存缓存框架进行处理。

  如果是单机项目。可以使用内存缓存。

  缓存的使用方式有多种:

    如使用Mybatis自带的一级缓存,二级缓存。但如果使用的是不同的SqlSession进行数据查询,这不会用到一级缓存。

    单机项目最好还是使用内存缓存框架,如Ehcache,用Map来存储所有字典数据。在更新字典数据后,直接整个更新缓存数据。

{
  "字典类型": [
    {
      "key": "label"
    }
  ]
}

  如果是分布式(虽然没实际用过):可以使用redis这种外置的非关系型数据库存储缓存数据。即一个类型一个key来存储数据。如

  RedisUtils.put( "dict:type_user_type" ) RedisUtils.get( "dict:type_user_type" )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍django项目搭建与Session使用详解,包括了django项目搭建与Session使用详解的使用技巧和注意事项,需要的朋友参考一下 前言 Django完全支持也匿名会话,简单说就是使用跨网页之间可以进行通讯,比如显示用户名,用户是否已经发表评论。session框架让你存储和获取访问者的数据信息,这些信息保存在服务器上(默认是数据库中),以 cookies 的方式发送和获取一个包

  • 本文向大家介绍Yii配置与使用memcached缓存的方法,包括了Yii配置与使用memcached缓存的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii配置与使用memcached缓存的方法。分享给大家供大家参考,具体如下: 1. 下载memcached软件包,解压,把memcached.exe 放到随意一个地方,比如:d:/memcached/ 下。 2. 开始->运行->输

  • 本文向大家介绍SpringBoot项目中使用redis缓存的方法步骤,包括了SpringBoot项目中使用redis缓存的方法步骤的使用技巧和注意事项,需要的朋友参考一下 本文介绍了SpringBoot项目中使用redis缓存的方法步骤,分享给大家,具体如下: Spring Data Redis为我们封装了Redis客户端的各种操作,简化使用。 - 当Redis当做数据库或者消息队列来操作时,我们

  • 本文向大家介绍node使用Koa2搭建web项目的方法,包括了node使用Koa2搭建web项目的方法的使用技巧和注意事项,需要的朋友参考一下 随着Node.js的日益火热,各种框架开始层出不穷的涌现出来,Node.js也开始逐渐的被应用到处理服务端请求的场景中。搭建Web项目的框架也随之开始出现——express、koa、koa2、egg等,当然要了解其好坏还是要自己去啃源码的。本文将不会涉及到

  • 问题内容: 我有一个返回字符串的吸气剂,并且我正在将它与其他一些String进行比较。我检查返回的值是否为null,因此我的陈述看起来像这样(如果确实为真,我确实会提前退出) 从性能上来说,存储返回的String而不是像这样两次调用getter会更好吗?有关系吗 为了回答评论中的问题,这种检查并不经常执行,并且吸气剂非常简单。我最好奇的是,分配新的局部变量与执行getter的额外时间相比如何。 问

  • 本文向大家介绍详解Vue使用 vue-cli 搭建项目,包括了详解Vue使用 vue-cli 搭建项目的使用技巧和注意事项,需要的朋友参考一下 vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli  一、 安装 node.js 首先需要安装node环境,可以直