Java JDBC线程安全

Java JDBC线程安全,java,multithreading,jdbc,Java,Multithreading,Jdbc,如果函数中有以下序列 void UpdateDatabase(conn) { createStatement executeStaement getResult } 如果稍加修改,这一调用序列在Java中是否安全 void updateDatabase() { getConnection createStatement executeStaement getResult } 如果您的线程不共享任何状态或以其他方式正确同步共享状态,那么它

如果函数中有以下序列

void UpdateDatabase(conn) {
    createStatement
    executeStaement
    getResult
}

如果稍加修改,这一调用序列在
Java

中是否安全

void updateDatabase() {
    getConnection
    createStatement
    executeStaement
    getResult
}

如果您的线程不共享任何状态或以其他方式正确同步共享状态,那么它肯定是线程安全的。只有在查看JVM内部发生的情况时,执行才是线程安全的。然而,更重要的是,如果您的数据仍然可能被破坏


每个JDBC连接一次只能由一个线程使用,您正在这样做。然而,数据库系统定义了四个隔离级别,定义了并发事务可以看到的数据状态。如果您的并发事务不涉及相同的数据,则罚款。如果有,请查看数据库的隔离级别。

我认为您需要向我们展示更多的代码片段,例如
createStatement
executestatement
getResult
使用了哪些参数。如何调用
UpdateDatabase
函数,这也取决于您使用的数据库。通常,数据库将管理并发请求。因此,您不必担心db客户端的线程安全。可能的复制只需确保每个线程都使用自己的连接。问题是“这一调用序列是线程安全的吗?”。而不是如何使这个线程安全