jdbc - transaktioner (savepoint, autocommit, forpligter og rollback)

, hvis deres jdbc forbindelse er i, automatisk forpligte tilstand, som det er ved misligholdelse, og derefter hver sql erklæring er forpligtet til databasen efter dets afslutning. det kan være godt for enkle ansøgninger, men der er tre grunde til, at de kan have sluk auto forpligte og forvalte deres egne transaktioner &minus,,,,,,, at øge ydeevnen.,,, til at opretholde integriteten af forretningsprocesser,.,,, at bruge distribueret transaktioner, transaktioner, giver dig mulighed for at kontrollere, om og hvornår ændringer anvendes til databasen.det behandler et enkelt sql erklæring eller en gruppe af sql erklæringer, som en logisk enhed, og hvis nogen erklæring ikke, hele transaktionen ikke. for at gøre det muligt for manuel - transaktion støtte i stedet for den, automatisk forpligte, mode, at jdbc chauffør anvendelser som standard, anvender den forbindelse objekt er, setautocommit() metode.hvis du består en boolean falske til setautocommit (), skal du slukke automatisk begår.du kan give en boolean - sandt at vende tilbage igen. for eksempel, hvis du har en forbindelse til formål, der hedder conn, kode følgende at slukke automatisk forpligte −, conn.setautocommit (forkert), forpligter & rollback, når du er færdig med din ændringer, og du ønsker at begå de ændringer, ring, commit(), metode i forbindelse protesterer således −, conn.commit (), ellers ruller tilbage opdatering af databasen, der er fremstillet ved anvendelse af den forbindelse, der hedder conn, anvendes følgende koder og minus;, conn.rollback (), som for eksempel illustrerer anvendelsen af forpligtelser og rollback objekt &minus. prøv (//påtage sig en gyldig forbindelse protesterer vi conn.setautocommit (forkert); udtalelse stmt =. createstatement(); snor sql = "indsætte i employees "+" - værdier (106, 20, rita, tez ') ". stmt. executeupdate (sql); //fremsætte et misdannet sql erklæring, der bryder snor sql =" indsættes i ansatte "+" - værdier (107, 22,' sita, singh ') ". stmt. executeupdate (sql); //, hvis der ikke er nogen fejl.. commit();} fangst (sqlexception se) (//, hvis der er begået en fejl.. rollback();}, i dette tilfælde, at ingen af de ovennævnte indsæt erklæring vil succes, og alt ville være rullet tilbage. for at få en bedre forståelse, lad os undersøge forpligte - f.eks. ved hjælp af savepoints, den nye jdbc 3,0 savepoint grænseflade giver dig yderligere statistik kontrol.de fleste moderne dbms, støtte savepoints inden for deres omgivelser, f.eks. oracles pl /sql. når du har sat en savepoint du definerer en logisk samme punkt i en transaktion.sker der en fejl, en savepoint, kan du bruge den samme metode til at ophæve alle de ændringer eller kun de ændringer, der er foretaget efter savepoint. forbindelsen objekt har to nye metoder, der kan hjælpe dig styre savepoints &minus,,,,, setsavepoint (string - savepointname), definerer en ny savepoint.det også giver en savepoint objekt.,,,, releasesavepoint (savepoint savepointname):, sletter en savepoint.bemærker, at det kræver en savepoint objekt som en parameter.dette formål er normalt en savepoint som følge af setsavepoint() metode.,,, der er en rollback (string - savepointname), metode, der ruller tilbage til bestemte savepoint. følgende eksempel illustrerer anvendelsen af en savepoint objekt − prøve (//påtage sig en gyldig forbindelse protesterer vi conn.setautocommit (falsk) udtalelse stmt =. createstatement(); //en savepoint savepoint savepoint1 = conn.setsavepoint ("savepoint1"); snor sql = "indsætte i ansatte" + "- værdier (106, 20, rita, tez ')". stmt. executeupdate (sql); //fremsætte et misdannet sql erklæring om, at pauser snor sql = "indsættes i ansatte" + "- værdier (107, 22,' sita, tez ')". stmt.executeupdate (sql); //, hvis der ikke er nogen fejl, forpligter de ændringer.. commit();} fangst (sqlexception se) (//, hvis der er begået en fejl.conn.rollback (savepoint1)}, i dette tilfælde, at ingen af de ovennævnte indsæt erklæring vil succes, og alt ville være rullet tilbage. for at få en bedre forståelse, lad os undersøge savepoints - f.eks. kode.



Previous:
Next Page: