Middle
Ինչպես է կառուցված դասը ResultSet Java-ում?
sobes.tech AI
Պատասխան AI-ից
ResultSet — դա java.sql պակետում գտնվող ինտերֆեյս է, որը ներկայացնում է SQL հարցման արդյունքները։ Այն տրամադրում է տվյալների հասանելիություն աստիճանաբար (մեկ տողից մեկ):
Հիմնական ասպեկտները՝
- Կուրսոր:
ResultSetաջակցում է կուրսորին, որը ցույց է տալիս ընթացիկ տվյալների տողը։ Նախնական դիրքը գտնվում է առաջին տողից առաջ: - Նավիգացիա: Կուրսորը տեղափոխելու համար օգտագործվում են
next(),previous(),first(),last()մեթոդները։next()վերադարձնում էtrue, եթե հաջողությամբ տեղափոխվել է հաջորդ տող, ևfalse, եթե արդյունքի վերջն է հասել: - Տիպեր: Կան տարբեր
ResultSetտիպեր՝TYPE_FORWARD_ONLY: Կուրսորը շարժվում է միայն առաջ՝ առավել արդյունավետ:TYPE_SCROLL_INSENSITIVE: Կուրսորը կարող է շարժվել ցանկացած ուղղությամբ, փոփոխությունները տվյալների բազայում չեն արտացոլվում:TYPE_SCROLL_SENSITIVE: Կուրսորը կարող է շարժվել ցանկացած ուղղությամբ, փոփոխությունները արտացոլվում են (կարող է լինել ավելի դանդաղ):
- Կոնկուրսիա: Կան որոշումներ՝ կարելի է արդյոք փոփոխել տվյալները
ResultSet-ի միջոցով՝CONCUR_READ_ONLY: Միայն ընթերցում:CONCUR_UPDATABLE: Ուղղումներ և ընթերցումներ:
- Տվյալների ստացում: Տվյալները ընթացիկ տողից ստացվում են
get<Type>()մեթոդներով՝ օրինակ,getString(int columnIndex),getInt(String columnLabel),getDate(int columnIndex): - Փակել: Կարևոր է փակել
ResultSet-ը օգտագործումից հետո՝ ռեսուրսները ազատելու համար, օգտագործելովclose()մեթոդը։ Դա սովորաբար կատարվում էfinallyբլոկում կամ try-with-resources-ով:
Օրինակ օգտագործում՝
// Կարծում ենք, որ connection և statement արդեն initialize են
try (ResultSet resultSet = statement.executeQuery("SELECT id, name FROM users")) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("User ID: " + id + ", Name: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
ResultSet-ը չի պահում բոլոր տվյալները հիշողության մեջ միաժամանակ, ինչը դարձնում է այն արդյունավետ մեծ տվյալների ծավալների դեպքում։