在java web开发中,数据存储介质有如下几种数据库(rdms,nosql)

缓存系统(redis,memcached,ehcache)

java内部数据结构(map,list)

文件存储(fastdfs)

所以如果同一数据在这几种介质中同时存在的话就需要同时更新保持一致,否则有一个没更新,某一个业务拿错误的数据去做操作自然会引发一系列数据错误问题。

最代码在开发的过程中,遇到过这类的问题,总结分享下给牛牛。

出错描述:

1.某个用户登录状态下,管理员在后台修改了他的级别,更新了对应mysql中的数据,但是没有更新session中用户数据

2.该登录用户下载其他用户代码时被扣牛币,但是因为session中的用户级别是老数据,此时save用户到mysql就导致了用户级别出错

解决方案:

方案1

通过拦截器每次在请求前将session中的user数据从mysql中load到然后将session的user指向mysql的user数据,保证session登录用户的数据是和mysql的用户一致

相关代码片段

方案2

session中只保存登录用户id,在需要获取登录用户的数据时,得到该用户id再从mysql中load  user,保证session数据和mysql一致

相关代码片段

登录成功后session.setAttribute(GlobalConstants.SESSION_LOGIN_USER_ID, userId);

需要登录用户信息的时候Long userId=session.getAttribute(GlobalConstants.SESSION_LOGIN_USER_ID);

User user=userService.findById(userId);

其他web开发中数据一致性的情况大同小异,希望能抛砖引玉给牛牛们的开发带来帮助

java和Mysql数据一致性_java web开发中数据一致性的问题相关推荐

  1. java中有地址吗_java web开发中各类地址的写法

    这个其实有三个原则: 1.如果这个地址是给服务器用的,该地址的起点就是从该web应用开始写. 2.如果这个地址是给浏览器用的,该地址的起点就是从该网站开始写. 3.所有的地址都以"/&quo ...

  2. java css路径_java web开发中CSS路径有问题吗,运行jsp文件为什么找不到css文件?...

    ---------------------------------------------------------------------------------------------------- ...

  3. java开发 图片显示不出来_java web开发中 显示图片的问题

    记录一个java Web开发中显示图片的小问题: 我碰到的问题是:把服务器上存的图片,在客户端的浏览器中显示出来.解决方法如下: 两种显示方式 一是:在servlet 或 action中直接输入图片到 ...

  4. java编译遇到的问题与解决_java web开发中遇到的问题及解决方案(个人学习日志,持续更新)...

    2012.05.02   星期三 1.问题:导入的新工程,名字上出现感叹号. 原因:工程的jar包libraries需要重新加载. 解决:工程右键-->properties-->Java ...

  5. java 写一个商店_Java Web开发之基于Session的购物商店实现方法

    本文实例讲述了Java Web开发之基于Session的购物商店实现方法.分享给大家供大家参考,具体如下: package cn.com.shopping; import java.io.IOExce ...

  6. javaweb mysql购物车_java web开发之实现购物车功能

    为了方便自己以后复习,所以写的比较仔细,记录下自己的成长. 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在 ...

  7. java怎么加定时器_JAVA WEB程序中添加定时器

    JAVA WEB程序中添加定时器 //这是我的定时器类,用来定时执行某段任务: package com.my.time; import java.text.ParseException; import ...

  8. java启动mysq服务_Java Web开发——MySQL数据库的安装与配置

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  9. java 新窗口跳转页面_Java web开发中页面跳转小技巧——跳转后新页面在新窗口打开...

    最近学习Java web,在学习过程中想实现一个需求,就是在jsp页面跳转的时候,希望跳转后的新页面在新窗口中打开, 而不是覆盖原来的页面,这个需求使我困惑了好长时间,后来通过大海捞针似的在网上寻找方 ...

最新文章

  1. IT人士必备五大绿色健康生活用品
  2. python处理excel-python对Excel的读取
  3. python批量下载网页文件-Python批量下载网页图片详细教程
  4. 与梦城Typecho博客数据站+API站
  5. railscasts #1 Caching with Instance Variables
  6. 编辑距离Edit distance
  7. Graphics samples2
  8. 基于地理位置标记的空间聚类分析(python-DBSCAN)
  9. (三)基于Phyphox的三线摆法测量物体转动惯量
  10. 华为手机更换第三方桌面
  11. QCC304x系列开发教程(实战篇) 之7.3 QCC3040之swift pair
  12. 菜花这样做,就着它吃光三碗饭
  13. matlab绘制图形hold on_matlab中hold on是什么意思
  14. 人口会一直增长下去吗_地球上的人口一直暴增,会不会因此出现世界未日?
  15. java实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
  16. 从事文字工作和经常使用电脑的人要注意保护好自己的眼睛
  17. 基于小波变换的脉搏信号滤波matlab仿真
  18. PCA针对TE过程(田纳西伊斯曼过程)数据的故障监测处理
  19. 计算机网络四交换技术,计算机网络数据交换技术发展
  20. 【美】罗伯特•帕利亚里尼——《另外8小时》

热门文章

  1. Simulink_Debug的使用
  2. 通过Python扫描代码关键字并进行预警
  3. 使用Anaconda进行环境和包的管理
  4. asp.net在IIS7中更改网站的.net framework框架版本
  5. 4款.Net报表控件优势对比分析
  6. CSS中id选择器和class选择器
  7. leetcode —— 207. 课程表
  8. 去哪儿-04-iconsDev
  9. python中pip的安装与使用
  10. 拉氏变换及复域传递函数