jdbc连接中的java多线程技术

cidc1ykv  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(279)

我正在尝试将一个文件上传到服务器并将该文件的信息存储到access数据库中,是否需要在为多个用户连接数据库时处理线程。如果是,怎么做?

fcipmucu

fcipmucu1#

确切地。每个http请求本身已经是一个线程。请记住,在应用程序的生命周期内,web容器将只创建一个servlet示例,并且servlet代码将在所有请求之间共享。这意味着任何类级变量或静态变量都将在所有请求之间共享。如果有这样一个变量,它就不是线程安全的。您需要在方法级别声明特定于请求的变量threadlocal。
至于jdbc:只要编写可靠的代码,一切都应该顺利。使用连接池只对提高连接性能有用(这确实是值得的,相信我,连接数据库是一项相当昂贵的任务,可能需要至少200毫秒甚至更长的时间,而从连接池中重用连接几乎不需要任何成本)。它只是不会改变你所写代码的线程安全性,它仍然在你的控制/手中。为了清楚地了解如何以正确的方式编写基本的jdbc代码,您可能会发现本文很有用。

plicqrtu

plicqrtu2#

您的web服务器是继承的多线程的,这使您不必实现自己的线程来处理上传。但是,请确保多个请求不使用相同的资源(不要将所有上载的文件写入同一个tmp文件中,…)
为避免将数据保存到数据库时出现问题,请使用连接池。
因此,是的,你需要线程,但如果你的设计是好的,那么所有的线程将由你的框架处理

相关问题