2013-04-17 77 views
3

如果我在一个功能的Java JDBC线程安全

void UpdateDatabase(conn) { 
    createStatement 
    executeStaement 
    getResult 
} 

以下顺序是,如果你改变它一点点

void updateDatabase() { 
    getConnection 
    createStatement 
    executeStaement 
    getResult 
} 

它将这一顺序调用Java

+1

我想你需要向我们展示更多的代码片段,比如'createStatement','executeStaement'和'getResult'使用的参数。你怎么调用'UpdateDatabase'函数 – Apurv

+0

也取决于你使用的数据库。通常数据库将管理并发请求。所以你不会担心数据库客户端的线程安全。 – anoopelias

+0

可能重复[是java.sql.Connection线程安全?](http://stackoverflow.com/questions/1531073/is-java-sql-connection-thread-safe) –

回答

0

多线程安全的绝对是线程安全的

+0

好吧,问题是“_这个调用序列线程安全_”。而不是如何使这个线程安全 – Apurv

2

Asuming your threads does not share any状态或以其他方式正确同步共享状态时,只有在查看JVM内部发生的情况时,执行才是线程安全的。但更重要的是,如果您的数据仍然可能被破坏。

每个JDBC连接一次只能由一个线程使用,您正在执行的操作。然而,数据库系统定义了四个隔离级别,定义了并发事务可以看到哪些数据状态。如果您的并发交易没有触及相同的数据,那就罚款。如果他们这样做,看看你的数据库的隔离级别。