Sobes.tech
Middle

Ի՞նչ մակարդակներ են աջակցում JDBC-ն։

sobes.tech AI

Պատասխան AI-ից

JDBC-ում աջակցվում են հետևյալ գործարքների մեկուսացման մակարդակները՝

  1. TRANSACTION_NONE: Կապը չի աջակցում գործարքների:
  2. TRANSACTION_READ_UNCOMMITTED: Գործարքը թույլ է տալիս կարդալ այլ գործարքներից չհաստատված տվյալներ (աղտոտ կարդում):
  3. TRANSACTION_READ_COMMITTED: Գործարքը տեսնում է միայն այն տվյալները, որոնք հաստատվել են այլ գործարքների կողմից: Աղտոտ կարդում բացառվում է, բայց կարող են լինել կրկնվող չկարդացումներ:
  4. TRANSACTION_REPEATABLE_READ: Գործարքը տեսնում է նույն տվյալները կրկնվող կարդումներում, եթե դրանք չեն փոխվել նույն գործարքի կողմից: Արգելվում է աղտոտ կարդումը և կրկնվող չկարդացումները, բայց կարող են լինել ֆանտոմներ:
  5. TRANSACTION_SERIALIZABLE: Ամենաբարձր մեկուսացման մակարդակ։ Գործարքները կատարվում են այնպես, կարծես նրանք կատարվում են հերթականությամբ։ Արգելվում է աղտոտ կարդումը, կրկնվող չկարդացումները և ֆանտոմները։ Գերազանցում է առավելագույն համահունչությունը, բայց կարող է նվազեցնել կատարողականությունը։

Մեկուսացման մակարդակը կարելի է սահմանել կապի համար Connection.setTransactionIsolation(int level) մեթոդով։ Օրինակ՝

// Հաստատել Repeatable Read մակարդակը
connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);

Նախնական արժեքը կախված է կոնկրետ տվյալների բազայի կառավարման համակարգից։

Ներկա մեկուսացման մակարդակը ստանալու համար օգտագործվում է Connection.getTransactionIsolation() մեթոդը՝

int isolationLevel = connection.getTransactionIsolation();
// Ներկա մակարդակի ստուգում
if (isolationLevel == Connection.TRANSACTION_READ_COMMITTED) {
    System.out.println("Ներկա մեկուսացման մակարդակը READ_COMMITTED է");
}

Կարևոր է ընտրել մեկուսացման մակարդակը զգուշությամբ՝ տվյալների համահունչության և ծրագրի կատարողականության միջև հավասարակշռություն գտնելու համար։