`
free_bird816
  • 浏览: 206072 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

并发提交,单号避免重复

阅读更多

这也是网上看到的,感觉解决方法不错。

这是一个很有代表性的问题,在C/S结构的数据库应用程序中经常碰到,如果这种问题
不能很好地解决,可能造成系统速度缓慢、死锁甚至崩溃。我们在开发的过程中多次碰到了
这样的问题。有些辣手,但还是冲过去了。
    解决这种问题应该本着两个原则:
    1、要建立PRIMARY KEY;
    2、事务开启到提交之间的时间要尽可能地短。
    我们处理的时候用到了两种方法:
    1、建立一个专门的表,用来存放最大值。每次建立新单据的时候,提取该值并加1,
然后再写回。这是一种静态的处理方法。
    2、在单据完成并提交数据时,读取编号并加1,开启事务,提交事务。这个时间非常
短,一般不会出现编号重复,即使出现重复,数据回滚,可以重新提交。这是一种动态的
处理方法。

分享到:
评论

相关推荐

    高并发下如何避免产生重复数据?.doc

    尽管在代码中添加了判断是否存在相同数据的逻辑,但由于并发性,这个判断并不能完全避免重复插入。 为了解决这个问题,有两个主要的策略: 1. 商城系统需要修复内部bug,确保请求记录表不会产生重复记录。 2. 基础...

    j2ee服务器端避免重复提交

    下面将详细介绍如何在J2EE服务器端避免重复提交。 1. **事务管理**: J2EE服务器通常支持事务管理,通过在业务逻辑层(EJB或Spring Bean)中使用事务边界,可以确保一次只有一个提交操作被执行。例如,使用Java ...

    asp.net 页面防止重复提交

    在AJAX请求中,可以设置一个全局变量来标记请求状态,避免并发请求。 最后,前端验证和反馈也能帮助减少重复提交。例如,显示加载动画或提示信息,让用户知道请求正在处理中,可以降低他们因不耐烦而重复点击的可能...

    springboot2.1+redis+拦截器 防止表单重复提交

    在现代Web应用开发中,防止表单重复提交是一项重要的任务,因为这可能导致数据不一致性和服务器资源浪费。本文将深入探讨如何使用Spring Boot 2.1、Redis和拦截器来实现这一功能。以下是对这个主题的详细解释: ...

    并发控制指的是当多个用户同时更新行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。

    并发控制的主要目标是避免事务之间的冲突,防止出现诸如脏读、不可重复读和幻读等问题。 脏读发生在事务T1读取了事务T2还未提交的修改数据,然后T2因为某种原因回滚了更改。在这种情况下,T1读到的数据实际上是错误...

    Mysql 表字段修改 并发情况下避免重复

    在MySQL数据库中,当面临并发环境下表字段修改时,如何避免重复的问题是一个常见的挑战,特别是对于需要保持唯一性的字段,如用户名。以下是对这一问题的深入解析和解决方案。 首先,让我们看看问题的背景。在多...

    Struts2防止重复提交解决方案

    如果发现`token`无效,拦截器会抛出异常,导致Action不再执行,从而避免重复提交。配置`token`拦截器通常涉及到在Action类或包配置中添加`token`或`token-session`拦截器。`token-session`拦截器在处理多窗口或并发...

    token-springMVC 防止重复提交

    在Spring MVC框架中,防止重复提交是一个重要的议题,特别是在处理敏感数据或执行不可逆操作时。重复提交可能会导致数据不一致性和系统混乱。"Token-SpringMVC"是一种常见的解决方案,它利用令牌(Token)机制来确保...

    SQL server高并发下生成唯一订单号的存储过程

    原理:按照一定规则生成订单号后,把订单号插入数据表后,再返回给用户,由于数据表设置了主键,也就是当数据表中存在一条一样的订单号时,是无法插入到数据表中,所以即使高并发情况下,也不会出现重复订单号

    struts token机制解决表单重复提交

    - **安全性**:避免了重复提交可能导致的系统数据不一致。 - **用户体验**:相比其他如锁定表单的方法,Token机制对用户无感知,不会阻塞用户操作。 - **可扩展性**:可以轻松集成到现有的Struts应用中,无需大规模...

    自定义标签 防止重复提交

    自定义标签是一种优雅的解决方法,它能够有效地控制页面的行为,避免因为用户误操作或网络延迟导致的数据重复插入。本文将深入探讨自定义标签在防止重复提交中的实现原理和应用。 首先,我们要理解什么是自定义标签...

    Struts之Token解决表单那重复提交

    - Token应具有一定的时效性,避免用户长时间未操作后重新提交仍能成功。 - 使用`token`拦截器时,如果客户端的Token丢失,可能会导致“令牌不匹配”错误,这时需要正确处理这种情况,比如提示用户重新提交。 - 考虑...

    java+redis+lua实现重复提交操作拦截.zip

    在IT行业中,尤其是在分布式系统和高并发场景下,防止重复提交是确保数据一致性的重要策略。本项目"java+redis+lua实现重复提交操作拦截"旨在解决这个问题,通过结合Java、Redis和Lua技术来构建一个高效的解决方案。...

    快递单号自动生成

    3. **容错机制**:确保在系统故障后仍能恢复未分配的单号,避免单号重复。 4. **数据库集成**:将生成的单号及时存储到数据库,便于后续的查询和追踪。 5. **安全性**:确保单号生成过程中不会泄露敏感信息,如用户...

    mysql 可重复读和读提交的区别(csdn)————程序.pdf

    总的来说,可重复读保证了事务内部的查询一致性,而读已提交则提供了更高的并发性,牺牲了一部分一致性。选择哪种隔离级别取决于应用的需求和对并发控制的容忍度。在实际应用中,需要根据业务场景来合理选择事务隔离...

    Java表单重复提交的避免方法

    通过这样的方式,我们可以有效地避免Java表单的重复提交。需要注意的是,实际应用中可能还需要考虑其他因素,例如并发控制、事务管理等,以确保系统的稳定性和数据的一致性。此外,还可以结合前端JavaScript来控制...

    SQLServer中防止并发插入重复数据的方法详解

    SQL Server的读已提交(Read Committed)隔离级别在使用行版本控制时,可以避免锁定带来的性能问题,但仍能防止脏读。每个事务看到的是事务开始时的数据版本,而不是其他事务的中间状态,从而防止插入重复数据。但...

    详解java解决分布式环境中高并发环境下数据插入重复问题

    java解决分布式环境中高并发环境下数据插入重复问题 本文主要介绍了java解决分布式环境中高并发环境下数据插入重复问题的解决方案。该问题是指在高并发环境下,服务器同时接受到的重复请求,导致数据重复插入或修改...

    springboot+redis+AOP 防止表单重复提交

    在处理表单提交时,避免重复提交是一个典型的需求,以防止因网络延迟或用户误操作导致的数据冗余。本主题将深入探讨如何使用Spring Boot和Redis结合AOP(面向切面编程)来实现这一目标。 首先,让我们了解一下...

    EMS单号推算

    4. 并发控制:如果多个请求同时进行推算,需要考虑并发控制策略,避免数据冲突。 文件名称“Debug”暗示可能存在调试文件或日志,这对于系统开发和维护至关重要。调试文件可以帮助开发者识别和修复代码中的错误,...

Global site tag (gtag.js) - Google Analytics