Я знаю состояние API «Потокобезопасный клиент для работы с вашими картами SQL», но я хочу понять, как он работает немного лучше, и мне было интересно, если кто-нибудь запускал эту многопоточную среду с транзакциями.Например, используя:
void doSomeSql() throws SQLException{
sqlMapper.startTransaction();
sqlMapper.startBatch();
final Map paramMap = new HashMap();
paramMap.put("data", "data");
Integer num = (Integer) sqlMapper.queryForObject("getRowCount", paramMap);//get row count
sqlMapper.insert("insertData", paramMap); //insert row
num = (Integer) sqlMapper.queryForObject("getRowCount", paramMap);//get row count again
sqlMapper.executeBatch();
sqlMapper.commitTransaction();
}
Если бы это использовалось в тех случаях, когда несколько потоков могут вызывать это, и существует только один общий объект sqlMapper, будут ли некоторые потоки, выполняющие пакет, потому что другой поток с именем executeBatch ()?Это становится большей проблемой, если у меня есть много других методов, выполняющих обновления delete и т. Д., Использующих тот же sqlMapper в других потоках.
Я не хочу начинать транзакцию в одном потоке, а другой поток фиксируется перед предыдущим потокомбыло сделано.
Я понимаю, что могу синхронизировать все это, но лучше не делать этого.