ResultSet হল JDBC API-তে একটি ইন্টারফেস যা ডেটাবেস থেকে পাওয়া ডেটার সেট ধারণ করে। যখন আপনি SQL কুয়েরি চালান, তখন যে ডেটা রিটার্ন হয়, তা ResultSet এর মধ্যে আসে। আপনি ResultSet ব্যবহার করে ডেটাবেসের রেকর্ড থেকে ডেটা রিট্রাইভ করতে পারেন, এবং সেই ডেটা পরবর্তী প্রক্রিয়ায় ব্যবহার করতে পারেন।
ResultSet এর মাধ্যমে আপনি বিভিন্ন ধরনের ডেটা যেমন String, Integer, Date ইত্যাদি এক্সট্র্যাক্ট করতে পারেন। নিচে ResultSet এর বিভিন্ন মেথড ব্যবহার করার উদাহরণ দেওয়া হল।
ResultSet এর প্রধান মেথড
ResultSet এর কিছু গুরুত্বপূর্ণ মেথড হল:
getString(int columnIndex)/getString(String columnLabel)getInt(int columnIndex)/getInt(String columnLabel)getDate(int columnIndex)/getDate(String columnLabel)next(): এটি রেকর্ডের পরবর্তী রোতে যায়।
এছাড়াও, আপনি অন্যান্য ডেটা টাইপের জন্য মেথড ব্যবহার করতে পারেন, যেমন getDouble(), getBoolean(), getTimestamp() ইত্যাদি।
উদাহরণ: ResultSet ব্যবহার
এই উদাহরণে, JDBC দিয়ে একটি MySQL ডেটাবেস থেকে ডেটা রিট্রাইভ করা হবে এবং ResultSet এর মাধ্যমে তা প্রিন্ট করা হবে। এখানে আমরা একটি users টেবিল থেকে id, name, এবং dob (date of birth) কলামগুলো রিট্রাইভ করব।
Step 1: MySQL ডেটাবেস সংযোগ
import java.sql.*;
public class JdbcResultSetExample {
public static void main(String[] args) {
// ডেটাবেসের তথ্য
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// Connection এবং Statement অবজেক্ট
try (Connection conn = DriverManager.getConnection(url, username, password)) {
System.out.println("Connection established!");
// SQL কুয়েরি লিখুন
String sql = "SELECT id, name, dob FROM users";
// Statement তৈরি করা
Statement stmt = conn.createStatement();
// কুয়েরি এক্সিকিউট করা এবং ResultSet পাওয়া
ResultSet rs = stmt.executeQuery(sql);
// ResultSet থেকে ডেটা রিট্রাইভ করা
while (rs.next()) {
// getString() ব্যবহার করে String ডেটা রিট্রাইভ করা
int id = rs.getInt("id");
String name = rs.getString("name");
// getDate() ব্যবহার করে Date ডেটা রিট্রাইভ করা
Date dob = rs.getDate("dob");
// ডেটা প্রিন্ট করা
System.out.println("ID: " + id + ", Name: " + name + ", Date of Birth: " + dob);
}
// রিসোর্স বন্ধ করা
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
কোড ব্যাখ্যা:
- Connection: প্রথমে
DriverManager.getConnection()মেথডের মাধ্যমে ডেটাবেসে সংযোগ স্থাপন করা হয়। - Statement:
createStatement()মেথড ব্যবহার করে একটি স্টেটমেন্ট অবজেক্ট তৈরি করা হয়, যা SQL কুয়েরি এক্সিকিউট করতে ব্যবহৃত হয়। - ResultSet:
executeQuery()মেথড ব্যবহার করে SQL কুয়েরি চালানোর পর একটি ResultSet অবজেক্ট পাওয়া যায়, যা কুয়েরির রেজাল্ট ধারণ করে। এরপরrs.next()ব্যবহার করে ResultSet এর প্রতিটি রো প্রক্রিয়া করা হয়। - getString():
getString()মেথড ব্যবহার করেnameকলামের মান রিট্রাইভ করা হয়।rs.getString("name")কলামের নাম ব্যবহার করে ডেটা রিট্রাইভ করা যায়। আপনি কলামের ইনডেক্স (যেমনgetString(2)) দিয়েও ডেটা রিট্রাইভ করতে পারেন।
- getInt():
getInt()মেথড ব্যবহার করেidকলামেরIntegerমান রিট্রাইভ করা হয়। - getDate():
getDate()মেথড ব্যবহার করেdobকলামেরDateমান রিট্রাইভ করা হয়।- এটি
java.sql.Dateঅবজেক্ট ফেরত দেয়, যা সাধারণত ডেটাবেসের DATE টাইপের কলাম থেকে পাওয়া ডেটা থাকে।
- এটি
- rs.next(): এই মেথডটি ResultSet এর পরবর্তী রোতে চলে যায়। যদি পরবর্তী রো থাকে তবে এটি
trueফেরত দেয়, অন্যথায়false।
ResultSet মেথডের অন্যান্য উদাহরণ
getBoolean():
booleanটাইপের ডেটা রিট্রাইভ করার জন্য ব্যবহার করা হয়।boolean isActive = rs.getBoolean("is_active");getDouble():
doubleটাইপের ডেটা রিট্রাইভ করার জন্য ব্যবহার করা হয়।double salary = rs.getDouble("salary");getTimestamp(): ডেটাবেসের TIMESTAMP কলাম থেকে সময়সীমা রিট্রাইভ করার জন্য ব্যবহার করা হয়।
Timestamp createdAt = rs.getTimestamp("created_at");
ResultSet এর পদ্ধতি:
- getString(columnIndex): নির্দিষ্ট কলামের মানটি স্ট্রিং হিসেবে রিটার্ন করে।
- getInt(columnIndex): নির্দিষ্ট কলামের মানটি পূর্ণসংখ্যা (Integer) হিসেবে রিটার্ন করে।
- getDate(columnIndex): নির্দিষ্ট কলামের মানটি java.sql.Date হিসেবে রিটার্ন করে।
- next(): পরবর্তী রোতে চলে যায় এবং রো উপস্থিত থাকলে
trueরিটার্ন করে।
Conclusion
ResultSet হল JDBC API এর একটি গুরুত্বপূর্ণ অংশ যা ডেটাবেস থেকে ডেটা রিটার্ন করে। getString(), getInt(), এবং getDate() এর মতো মেথডগুলো ব্যবহার করে আপনি ডেটাবেস থেকে বিভিন্ন ধরনের ডেটা যেমন স্ট্রিং, ইন্টিজার, ডেটা রিটার্ন করতে পারেন। এছাড়াও, ResultSet এর next() মেথড ব্যবহার করে আপনি ডেটা সিরিজের প্রতিটি রো অ্যাক্সেস করতে পারেন এবং উপস্থাপন করতে পারেন। JDBC ব্যবহার করে ডেটাবেস থেকে ডেটা রিট্রাইভ করা খুবই সহজ এবং এটি Java অ্যাপ্লিকেশনগুলিতে ডেটাবেসের তথ্য সন্নিবেশ, আপডেট এবং রিট্রাইভ করার জন্য একটি গুরুত্বপূর্ণ হাতিয়ার।
Read more