Från Oracle JDBC-dokumentation:
När en anslutning skapas är den i auto-commit-läge. Detta innebär att varje enskild SQL-sats behandlas som en transaktion och committeras automatiskt direkt efter att den har körts. (För att vara mer exakt är standardinställningen att en SQL-sats begås när den är klar, inte när den exekveras. En sats är klar när alla dess resultatuppsättningar och uppdateringsantal har hämtats . I nästan alla fall är dock ett uttalande slutfört, och därför begåtts, direkt efter att det har utförts.)
Den andra saken är - du har utelämnat anslutningsskapande detaljer, så jag gissar bara - om du använder några ramverk, eller skaffar en anslutning från en datakälla eller anslutningspool, autocommit
kan vara off
genom dessa ramverk/pooler/datakällor - lösningen är att aldrig lita på standardinställningar;-)