当前位置: 首页 > news >正文

python可以做网站后台吗引流推广营销

python可以做网站后台吗,引流推广营销,有什么有什么好的学做饮品的网站,什么网站可以做电子画册使用场景 用于当有多个用户同时修改同一条数据的时候,只允许有一个修改成功。 实现原理 使用一个字段,用于记录数据的版本。 当修改数据时,会去检测当前版本是否是正在修改的版本,同时修改成功后会把 版本号 1。 实现方式 配…

使用场景

用于当有多个用户同时修改同一条数据的时候,只允许有一个修改成功。

实现原理

使用一个字段,用于记录数据的版本。
当修改数据时,会去检测当前版本是否是正在修改的版本,同时修改成功后会把 版本号 + 1

实现方式

  1. 配置插件
  2. 在实体类的字段上加上@Version注解

在这里插入图片描述

代码

配置插件

package com.example.core.config;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan("com.example.web")
public class MybatisPlusConfig {/*** 添加拦截器*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 乐观锁插件interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); // 针对 update 和 delete 语句 作用: 阻止恶意的全表更新删除interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));// 如果配置多个插件,切记分页最后添加// interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbTypereturn interceptor;}
}

在实体类的字段上加上@Version注解

package com.example.web.entity;import com.baomidou.mybatisplus.annotation.Version;
import lombok.Data;@Datapublic class User {// 其他字段/*** 版本*/@Versionprivate Integer version;
}

数据库表

在这里插入图片描述

测试

代码

    /*** 插入用户*/@Testpublic void insert() {User user = new User();user.setId(16L);user.setName("郑一");user.setAge(30);user.setEmail("zhengyi@example.com");user.setGender(GenderEnum.MALE);mapper.insert(user);}/*** 更新用户:版本号为空,乐观锁失效。*/@Testpublic void update() {User user = new User();user.setId(16L);user.setAge(31);mapper.updateById(user);}/*** 更新用户:版本号 +1(版本号不为空,乐观锁有效)。*/@Testpublic void updateWithVersion() {User user = mapper.selectById(16L);user.setAge(31);mapper.updateById(user);}/*** 更新用户:测试同时更新,第二个更新失败。*/@Testpublic void updateConcurrent() {// 同步查询User user1 = mapper.selectById(16L);user1.setAge(32);User user2 = mapper.selectById(16L);user2.setAge(33);// 更新mapper.updateById(user1);mapper.updateById(user2);}

新插入的数据

在这里插入图片描述

更新时版本号为空,乐观锁失效

感觉这像是一个漏洞。
在这里插入图片描述

更新时版本号不为空,乐观锁有效

当 实体 的 version 字段不为空时,乐观锁才能正常生效。
在这里插入图片描述

模拟同时更新

同一条数据,查询两次出来。然后调用两次更新,第一次更新成功,第二次更新失败。

查询两次数据

在这里插入图片描述

两次更新,第一次成功了,Updates: 1;第二次失败了,Updates: 0

在这里插入图片描述

http://www.hkea.cn/news/381263/

相关文章:

  • 顺义哪有做网站厂家百度快照在哪里找
  • 深圳南山网站建设重庆seo黄智
  • 教育微网站建设我要学电脑哪里有短期培训班
  • 民宿预订网站制作推广方案怎么做
  • 做网站都要掌握什么网页模版
  • 网站怎么做qq微信登陆长沙优化网站哪家公司好
  • 为什么上不了建设银行个人网站漳州网络推广
  • 天津手机网站建站培训代运营公司可靠吗
  • 网站制作的一般步骤长春网站优化平台
  • Python做网站 性能上海seo培训中心
  • 网上投诉平台公众号排名优化
  • 网页模板网站推荐媒体公关是做什么的
  • 泰安的网站建设公司爱站网域名查询
  • 台州椒江网站制作公司广告推销
  • 南康做网站合肥seo招聘
  • 成都网站建设定长沙专业网站制作
  • 有什么网站是python做的如何自己开发一个平台
  • 网站建设标志设计北京网站优化公司
  • 图标使用wordpress杭州seo博客
  • 企业网站如何做推广竞价推广托管公司介绍
  • 网站如何做微信登录seo公司 杭州
  • 中山里水网站建设软文广告案例分析
  • 做外贸是用什么网站做新型网络营销方式
  • 心理咨询网站开发百度手机seo软件
  • 17网站一起做网批seo营销优化
  • 做赚钱网站程序员培训班要多少钱
  • 已经收录大规模修改收录页面对网站有影响吗什么软件可以推广自己的产品
  • 丁香园做科室网站厦门网络推广
  • 免费的企业网站制作提高网站权重的方法
  • 兰州网站制作怎么样网页在线生成