Middle
Ի՞նչ մակարդակներ են աջակցում JDBC-ն։
sobes.tech AI
Պատասխան AI-ից
JDBC-ում աջակցվում են հետևյալ գործարքների մեկուսացման մակարդակները՝
TRANSACTION_NONE: Կապը չի աջակցում գործարքների:TRANSACTION_READ_UNCOMMITTED: Գործարքը թույլ է տալիս կարդալ այլ գործարքներից չհաստատված տվյալներ (աղտոտ կարդում):TRANSACTION_READ_COMMITTED: Գործարքը տեսնում է միայն այն տվյալները, որոնք հաստատվել են այլ գործարքների կողմից: Աղտոտ կարդում բացառվում է, բայց կարող են լինել կրկնվող չկարդացումներ:TRANSACTION_REPEATABLE_READ: Գործարքը տեսնում է նույն տվյալները կրկնվող կարդումներում, եթե դրանք չեն փոխվել նույն գործարքի կողմից: Արգելվում է աղտոտ կարդումը և կրկնվող չկարդացումները, բայց կարող են լինել ֆանտոմներ: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 է");
}
Կարևոր է ընտրել մեկուսացման մակարդակը զգուշությամբ՝ տվյալների համահունչության և ծրագրի կատարողականության միջև հավասարակշռություն գտնելու համար։