Forum » Programiranje » [Java, JDBC] Serializacija dostopov do podatkovne baze preko JDBC gonilnika
[Java, JDBC] Serializacija dostopov do podatkovne baze preko JDBC gonilnika
Sergio ::
Pozdrav. :)
Upam, da mi boste Java guruji znali pomagati, saj mi nekaj ni jasno.
Razvijam aplikacijo, ki dela s podatkovno bazo preko gonilnika JDBC, kar tudi dela brez problema. Baza, ki tece spodaj, je PostgreSQL.
PostgreSQL podpira transakcije, kar lahko nastavim s klicom funkcije .setAutoCommit(false), nato pa lahko transakcijo potrdim z .commit() ali pa zavrzem z rollback().
Tudi do sem vse jasno.
Tezava se mi pojavi tukaj:
Ce izvajam v transakciji select query, ki bo vrnil result set, bo le-ta ze vseboval nove podatke, ki sem jih znotraj transakcije izvrsil z UPDATE in INSERT queryji?
In se to: Se lahko hkrati izvajata dve transakciji nad isto tabelo, ali mora druga transakcija zaradi morebitnega read locka pocakati na vrsto? Recimo, da prva transakcija vnasa vrsto v tabelo, medtem ko druga bere stevilo vrstic v tabeli.
Kako tocno to poteka?
Upam, da mi boste Java guruji znali pomagati, saj mi nekaj ni jasno.
Razvijam aplikacijo, ki dela s podatkovno bazo preko gonilnika JDBC, kar tudi dela brez problema. Baza, ki tece spodaj, je PostgreSQL.
PostgreSQL podpira transakcije, kar lahko nastavim s klicom funkcije .setAutoCommit(false), nato pa lahko transakcijo potrdim z .commit() ali pa zavrzem z rollback().
Tudi do sem vse jasno.
Tezava se mi pojavi tukaj:
Ce izvajam v transakciji select query, ki bo vrnil result set, bo le-ta ze vseboval nove podatke, ki sem jih znotraj transakcije izvrsil z UPDATE in INSERT queryji?
In se to: Se lahko hkrati izvajata dve transakciji nad isto tabelo, ali mora druga transakcija zaradi morebitnega read locka pocakati na vrsto? Recimo, da prva transakcija vnasa vrsto v tabelo, medtem ko druga bere stevilo vrstic v tabeli.
Kako tocno to poteka?
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
- spremenil: Sergio ()
kopernik ::
Nisem nek DB poznavalec, vendar mislim, da je takole:
1. V okviru iste transakcije bi se morale normalno videti vse spremembe. To se da enostavno preveriti.
2. Dokler na določeni transakciji ne potrdiš sprememb s commit(), ostale transakcije ne bodo videle teh sprememb. Tudi tega ni težko preveriti s kakšnim primerom.
1. V okviru iste transakcije bi se morale normalno videti vse spremembe. To se da enostavno preveriti.
2. Dokler na določeni transakciji ne potrdiš sprememb s commit(), ostale transakcije ne bodo videle teh sprememb. Tudi tega ni težko preveriti s kakšnim primerom.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [SQL] MySQL, MSSQL, TSQL,... Kaj priporočate in kaj uporabljateOddelek: Programiranje | 4436 (3578) | Groove |
» | Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 17676 (14542) | McAjvar |
» | [Java] podatkovna bazaOddelek: Programiranje | 2045 (1374) | PaX_MaN |
» | ASP in direktni query v MySQLOddelek: Programiranje | 1705 (1599) | BBB |