我有一个 Servlet,当请求到来时它会检查用户 ID,然后如果 id 不存在,它会在数据库中创建一个新的用户 ID。但是,如果我收到多个延迟很短的请求,那么所有这些请求往往会看到目前没有用户并创建多个具有相同名称的用户。我只是不想让用户 id 字段唯一来解决这个问题。除了用户 ID,我还存储了一些相关数据。
我需要知道如何在一个 Servlet 请求完成处理之前保持数据库锁定。
您需要使您的 servlet 代码同步。
简单的方法是让你的 servlet 实现 SingleThreadModel。
http://www.javatpoint.com/SingleThreadModel-interface
但这不是一个好方法,因为您的 servlet 一次只能处理一个线程/请求。好的解决方案是同步您检查和生成 uid 的部分。