不,使用它不是线程安全的。
实际上,如果其他某个线程使用一条语句,然后另一个线程调用executeUpdate(),则另一个线程的
ResultSets(如果有的话)将被关闭。“
javadoc.sql.Statement的JavaDoc(PreparedStatement是其子类型)
”如果存在打开的语句,那么Statement接口中的所有执行方法都会隐式关闭该语句的当前ResultSet对象。“
此外,不可能将给定的实现
executeUpdate()编写为多线程安全的。
您应该同步所有对语句和结果集的使用,或者建立多个连接,以便每个线程
Connection对数据库使用自己的JDBC 。我建议使用后者。



