多线程 JDBC

2024-01-27

从架构上来说,处理 JDBC 多线程的最佳方法是什么?我有许多线程同时访问数据库。通过单个连接和语句,我收到以下错误消息:

org.postgresql.util.PSQLException:此结果集已关闭。

我应该使用多个连接、多个语句还是有更好的方法?我的初步想法是每个线程使用一个语句,这将保证每个语句有一个结果集。


每个任务应该使用一个连接。如果您使用连接池,则无法使用由其他连接准备的准备好的语句。连接返回池后,连接创建的所有对象(ResultSet、PreparedStatements)均无效。

所以,是一样的

public void getSomeData() {
  Connection conn = datasource.getConnection();
  PreparedStatement st;
  try {
    st = conn.prepareStatement(...);
    st.execute();
  } finally {
    close(st);
    close(conn);
  }
}

因此,在这种情况下,所有 DAO 对象都采用的不是 Connection,而是 DataSource 对象 (java.sql.DataSource),它确实是可池连接工厂。在每种方法中,您首先要建立连接,完成所有工作并关闭连接。您应该尽快将连接返回到池中。连接返回后,它可能不会物理关闭,而是重新初始化(所有活动事务关闭,所有会话变量销毁等)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多线程 JDBC 的相关文章

  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • asp.net core / kestrel中的线程管理

    我正在解决我们已迁移到 asp net core 2 0 的 asp net 应用程序的性能 可扩展性问题 我们的应用程序作为应用程序服务托管在 azure 上 并且在任何中等流量的情况下都很容易崩溃 让我困惑的一件事是如何处理多个并发请求
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 如何复制文件并具有取消复制的功能?

    我正在努力拥有program能够取消复制 因此我不能使用Microsoft VisualBasic FileIO FileSystem CopyFile 有一些包装用于CopyFileEx在网络上 例如here http msdn micr
  • 如何处理或避免BlockedIndefinitelyOnSTM异常?

    我花了很多时间来解决我正在处理的应用程序中遇到的问题 该应用程序是一个 Web 应用程序 使用 scotty 公开 REST 端点 它使用一个TVar保持其更新的状态STM a由前端层触发的动作 由于该应用程序基于事件溯源原则 因此业务层生
  • 为什么在此单元测试中,BackgroundWorker 没有在正确的线程上调用 RunWorkerCompleted?

    backgroundWorker 的全部目的是在执行耗时的任务后更新 UI 组件正如广告所宣传的那样在我的 WPF 应用程序中 但是在我的测试中 回调不会在调用线程上调用 Test public void TestCallbackIsInv
  • 为并行的小型已知冻结进程创建匿名 AsyncTask 是一个好习惯吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 例如 您要做一些需要几秒钟的事情 并且不想冻结您的 UI 线程 对吗 您可以使用 AsyncTask 但您不想创建外部 或内部 类来解决小冻结问
  • Netty UDP 服务器中的线程未同时执行

    我正在分析的代码使用 Netty NioDatagramChannelFactory 创建 UDP 服务器 它创建一个线程池 ExecutorService threadPool Executors newCachedThreadPool
  • GCD 和线程

    我想了解一些有关 GCD 和线程的知识 我的视图控制器中有一个 for 循环 它要求我的模型执行一些异步网络请求 因此 如果循环运行 5 次 模型将发出 5 个网络请求 考虑到我正在使用 NSURLConnection 的 sendAsyn
  • ActionScript Workers 可以用于在单独的线程中播放/生成声音吗?

    我很新ActionScript 工作者 但我想知道这是否可能 从我读到的来看 ActionScript 工作者 ASW 就像单独的线程 可以执行更多 CPU 密集型计算 而无需中断主线程 正在执行主 SWF 文件 我真正看到的唯一一个例子是
  • 无法访问类型的封闭实例。 [复制]

    这个问题在这里已经有答案了 整个代码是 public class ThreadLocalTest ThreadLocal
  • 如何在其他核心上运行每个线程?

    我有一个 udp 服务器接收数据并计算它 每个角色我都有两个线程 我的CPU是8个多核 我以不同的速度发送数据 但最多我只使用了 cpu 两核 50 的 14 如果我发送更多的数据值 我的缓冲区将填满并且不会使用更多的CPU 为什么每个核心
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • InvalidOperationException - 对象当前正在其他地方使用 - 红十字

    我有一个 C 桌面应用程序 其中我连续创建的一个线程从源 实际上是一台数码相机 获取图像并将其放在 GUI 中的面板 panel Image img 上 这必须是另一个线程 如它是控件的代码隐藏 该应用程序可以工作 但在某些机器上 我会在随
  • 乐观锁批量更新

    如何使用乐观锁进行批量更新 我在用SimpleJdbcTemplate对于单行 我可以构建更新 sql 它会增加版本列值并在 WHERE 子句中包含版本 不幸的是结果int updated simpleJdbcTemplate batchU
  • pandas.Series.reindex(, copy=True) 的这种用法中线程不安全的根源是什么?

    Calling pd Series reindex不是线程安全的 错误报告 https github com pandas dev pandas issues 25870 我的问题是why即使没有人写入该对象的数据 Series reind
  • Web 应用程序似乎启动了名为 [22] 的线程,但未能停止它。这很可能造成内存泄漏

    我有一个 Web 应用程序 后端有 Servlet 部署在 tomcat 上 该应用程序是简单的java应用程序 我经常在服务器日志中看到此错误 严重 Web 应用程序似乎启动了一个名为 22 但未能阻止它 这很有可能 造成内存泄漏 是否存

随机推荐

  • 如何使用Ramda管道?

    背景 我正在尝试使用 Ramda 编写 2 个函数 但我遇到了问题pipe 这意味着我不知道如何使用它 Code 假设我有一个返回数组的函数 var createQuery params gt getSQLQuery params getM
  • 断言失败:电影播放器​​的激活状态错误 (1)

    我正在 iPad 应用程序的一个页面上播放视频 m4v 然后它会转到另一个视图控制器来播放另一个视频 它播放正常 但是当第二个视频播放完毕时 它会抛出断言失败 错误是 Assertion failure in MPMoviePlayerCo
  • Getx Flutter - 更新列表中的项目不是反应性的

    我使用 getx 作为我的 flutter 应用程序的状态管理 但我在更新列表中的值时遇到困难 所以我有一个参数为 isFollowing 的用户模型 当我单击按钮时 isFollowing 变量将发生变化并且颜色也应更新 但这并没有发生
  • 放置 libgdx Screen 的正确位置在哪里

    您好 我正在开发一款游戏 我想知道如何处理资源 因为我遇到了内存问题 我有这样的事情 public SplashScreen implements Screen Override public void render float delta
  • Flexbox - 垂直居中并匹配大小

    我使用 Flex 有两个相邻的按钮 并且它们的内容垂直居中 到目前为止效果很好 但是 当在移动页面上查看我的网站时 使用响应式设计来缩放页面 第二个按钮 其中的文本较少 的大小会与其同伴的大小不同 因此 目标是垂直对齐按钮上的文本 并使两个
  • 投票 - 阻止客户端滥用 - ASP.NET MVC

    所以我设计了这个投票的东西 它不会让某人在 24 小时内为同一篇文章投票两次 然而 假设一个人投票 并且在看到该人能够投票或者他处于 24 小时窗口内之后 我禁用投票按钮 顺便说一句 这都是 Ajax 但是 当一个人关闭浏览器并重新打开甚至
  • tsql函数分割字符串

    我想知道是否有人可以帮助我 我需要一个 sql 函数来分割给定值 例如 1 00 Not specified 3 01 05 Global WM BB Operations 2 02 05 01 Global WM BB Operation
  • 从 Eclipse PDT 转换为 Vim [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我真的很喜欢 VIM 它是我遇到过的少数几个能让你内心感到温暖和模糊的应用程序之一 然而 对于 PHP
  • 如何在 thenOpen 中获取 casper.js 中的响应状态 404 而不是 undefined?

    知道为什么下面的代码在任何一个中都没有捕获 404responsevar 或在http status 404 event 我使用 phantomjs 1 9 casperjs 1 0 2 和 Windows 7 运行此程序 var casp
  • 是否可以对 Xcode 项目的“构建阶段”部分中的“编译源”列表进行排序?

    我想根据名称对 Xcode 项目的 编译源 部分中的文件进行排序 是否可以 是的 您可以重新订购编译源Xcode 中的部分 但不是 GUI 中的部分 考虑到这已经是 IDE 的第 6 版 而且他们仍然没有解决这个基本功能 这很遗憾 正如 A
  • 如何在 Meteor Spacebars 模板中重复块 N 次?

    我在空格键模板中有这段代码 1
  • Lubridate 未在 R 中正确将日期时间转换为 POSIXct (dd/mm/yy hh:mm:ss) [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试将日期时间从 csv 转换为 POSIXct 以进行数据分析 我已经尝试了多个代码 但要么得到 NA 要么格式错误 我当
  • pandas:根据另一个数据框的列选择数据框列

    我正在尝试对 a 进行子集化pandas基于另一个类似数据框中的列的数据框 我可以在 R 中轻松做到这一点 df1 lt data frame A 1 5 B 6 10 C 11 15 df2 lt data frame A 1 5 B 6
  • 使用队列的生产者/消费者线程

    我想创建某种Producer Consumer线程应用程序 但我不确定在两者之间实现队列的最佳方法是什么 所以我有两个想法 这两个想法都可能是完全错误的 我想知道哪个更好 如果它们都很糟糕那么实现队列的最佳方法是什么 我关心的主要是这些示例
  • 如何让 Microsoft C++ 编译器将未知标志视为错误而不是警告?

    出于各种原因 我希望能够编写脚本来检测 MS C 编译器是否支持特定标志 我正在使用 Windows 7 1 SDK 中的编译器 C gt cl version Microsoft R C C Optimizing Compiler Ver
  • JavaScript 中的跨域数据访问

    我们有一个 ASP Net 应用程序托管在我们的网络上并暴露给特定的客户端 该客户希望能够将数据从他们自己的服务器导入到我们的应用程序中 数据通过 HTTP 请求检索 并采用 CSV 格式 问题是他们不想将他们的服务器暴露给我们的网络 并请
  • 在 JavaFX 中调整选项卡内容的大小

    老实说 我对 JavaFX 以及 Java 中的任何 UI 开发都是完全陌生的 我正在使用 fxml 来定义我的屏幕布局 我想要一个使用选项卡的应用程序 第一个选项卡的内部布局与 IssueTracker 示例应用程序非常相似 我创建了下面
  • 递归函数依赖不起作用

    我正在尝试乘以单位数组 来自dimensional 在幻像类型中 我在功能依赖性方面遇到了麻烦 问题的简化版本如下 我有以下类型 data F a F String 其中字符串表示外语表达式 幻像类型表示类型列表 我可以做类似的事情 x F
  • 其他程序可以读取我的 NSUserDefaults 设置吗?

    在iPhone上 不包括越狱手机 其他应用程序可以读取您使用设置的值吗NSUserDefaults 我正在考虑为我们的服务保存客户的用户名 密码 并希望确保其安全 不可以 其他应用程序无法看到您的数据 也就是说 您可能应该考虑使用keych
  • 多线程 JDBC

    从架构上来说 处理 JDBC 多线程的最佳方法是什么 我有许多线程同时访问数据库 通过单个连接和语句 我收到以下错误消息 org postgresql util PSQLException 此结果集已关闭 我应该使用多个连接 多个语句还是有