我正在使用 JDBC 与我的 Postgres 数据库通信。如果我的整个应用程序只运行一个连接,即只有一个调用;
DriverManager.getConnection("jdbc:postgresql://host:5432/database", user, pass);
但是这个Connection
对象在 Java 中的多个线程之间共享,我是否正确地假设任何使用 SQL 事务(BEGIN
和COMMIT
样式)的尝试只会非常混乱和破坏,因为 Java 线程有可能交错?对象是否Connection
“知道”哪个 Java 线程正在使用它进行查询?
我应该Connection
每个 Java 线程有一个对象并以这种方式使用 SQL 事务吗?或者我应该使用 Java 在 Java 中执行所有事务隔离synchronized
吗?