Uit Oracle JDBC-documentatie:
Wanneer een verbinding tot stand wordt gebracht, bevindt deze zich in de modus voor automatisch vastleggen. Dit betekent dat elke individuele SQL-instructie wordt behandeld als een transactie en automatisch wordt vastgelegd direct nadat deze is uitgevoerd. (Om preciezer te zijn:de standaard is dat een SQL-instructie wordt vastgelegd wanneer deze is voltooid, niet wanneer deze wordt uitgevoerd. Een instructie is voltooid wanneer alle resultatensets en updatetellingen zijn opgehaald . In bijna alle gevallen wordt een instructie echter voltooid, en daarom vastgelegd, direct nadat deze is uitgevoerd.)
Het andere is - je hebt details over het maken van verbindingen weggelaten, dus ik gok maar - als je een aantal frameworks gebruikt, of een verbinding verwerft van een gegevensbron of verbindingspool, de autocommit
kan worden uitgeschakeld off
door die frameworks/pools/gegevensbronnen - de oplossing is om nooit te vertrouwen op standaardinstellingen;-)