Нет, это не потокобезопасное использование.
На самом деле, если какой-то другой поток использует оператор, а затем другой поток вызывает executeUpdate (), тогда ResultSet
s другого потока, если таковые имеются, будут закрыты. JavaDoc для java.sql.Statement (подтипом которого является PreparedStatement)"Все методы выполнения в интерфейсе Statement неявно закрывают текущий объект ResultSet статута, если существует открытый."
Кроме того, маловероятно, что данная реализация executeUpdate()
будет написана как многопоточная.
Вам следует либо синхронизировать все использование оператора и результирующих наборов результатов, либо создать несколько соединений, чтобы каждый поток использовал свой собственный JDBC Connection
с базой данных. Я бы порекомендовал последнее.