iBATIS (বর্তমানে MyBatis নামে পরিচিত) হল একটি Java Persistence Framework যা SQL Mapping-এর মাধ্যমে Java objects এবং relational databases এর মধ্যে ম্যাপিং তৈরি করতে ব্যবহৃত হয়। iBATIS ডেভেলপারদের সরাসরি SQL কুয়েরি ব্যবহার করতে দেয়, তবে এর মধ্যে কিছু বিশেষ ফিচার রয়েছে যা SQL কুয়েরি এবং Java objects এর মধ্যে সহজ এবং কার্যকরী ম্যাপিং পরিচালনা করে। iBATIS (এখন MyBatis) CRUD operations (Create, Read, Update, Delete) সহজে পরিচালনা করার জন্য ব্যবহৃত হয়।
iBATIS এর মাধ্যমে SQL কুয়েরি এবং Java objects এর মধ্যে ম্যাপিং তৈরি করা হয়। নিচে iBATIS-এ প্রাথমিক কাজের ধাপ (Select, Insert, Update, Delete) সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
iBATIS - প্রাথমিক কাজের ধাপ (CRUD Operations)
1. Select Operation (Reading Data)
iBATIS-এ ডেটা পড়ার জন্য SELECT কুয়েরি ব্যবহৃত হয়। সাধারণত SQL Mapping ফাইলের মধ্যে একটি select ট্যাগ ব্যবহার করা হয়, যেখানে কুয়েরি এবং Java মডেল ক্লাসের মধ্যে ম্যাপিং তৈরি করা হয়। আপনি resultMap বা resultType ব্যবহার করে রেজাল্ট ম্যাপিং করতে পারেন।
Select Operation Example:
SQL Mapping File (XML):
<mapper namespace="com.example.mapper.EmployeeMapper">
<select id="getEmployeeById" resultType="com.example.model.Employee">
SELECT id, name, age, department FROM employee WHERE id = #{id}
</select>
</mapper>
Java Code to Fetch Data:
import org.apache.ibatis.session.SqlSession;
public class EmployeeService {
private SqlSession session;
public EmployeeService(SqlSession session) {
this.session = session;
}
public Employee getEmployeeById(int id) {
return session.selectOne("com.example.mapper.EmployeeMapper.getEmployeeById", id);
}
}
এখানে:
selectOneমেথড ব্যবহার করা হয়েছে একটি সিঙ্গেল রেকর্ড ফেরত দেওয়ার জন্য।#{id}ব্যবহার করা হয়েছে প্যারামিটার হিসেবে ইনপুট দেওয়ার জন্য।resultTypeব্যবহার করে SQL কুয়েরির ফলাফল Employee ক্লাসে ম্যাপ করা হয়েছে।
2. Insert Operation (Inserting Data)
iBATIS-এ ডেটা ইনসার্ট করার জন্য INSERT কুয়েরি ব্যবহার করা হয়। ডেটাবেসে নতুন রেকর্ড ইনসার্ট করতে insert ট্যাগ ব্যবহার করা হয়।
Insert Operation Example:
SQL Mapping File (XML):
<mapper namespace="com.example.mapper.EmployeeMapper">
<insert id="insertEmployee" parameterType="com.example.model.Employee">
INSERT INTO employee (name, age, department)
VALUES (#{name}, #{age}, #{department})
</insert>
</mapper>
Java Code to Insert Data:
import org.apache.ibatis.session.SqlSession;
public class EmployeeService {
private SqlSession session;
public EmployeeService(SqlSession session) {
this.session = session;
}
public void insertEmployee(Employee employee) {
session.insert("com.example.mapper.EmployeeMapper.insertEmployee", employee);
session.commit(); // Commit the transaction
}
}
এখানে:
insertট্যাগ SQL ইনসার্ট কুয়েরি পরিচালনা করে।#{}সিঙ্ক্রোনাইজেশন ব্যবহার করে Java অবজেক্টের প্রপার্টি SQL কুয়েরিতে পাঠানো হয়।commit()ট্রানজেকশন সম্পন্ন করার জন্য ব্যবহার করা হয়।
3. Update Operation (Updating Data)
iBATIS-এ ডেটা আপডেট করার জন্য UPDATE কুয়েরি ব্যবহৃত হয়। আপনার মডেল অবজেক্টের মধ্যে সংশোধিত ডেটা পাঠানোর মাধ্যমে সংশ্লিষ্ট রেকর্ড আপডেট করা হয়।
Update Operation Example:
SQL Mapping File (XML):
<mapper namespace="com.example.mapper.EmployeeMapper">
<update id="updateEmployee" parameterType="com.example.model.Employee">
UPDATE employee
SET name = #{name}, age = #{age}, department = #{department}
WHERE id = #{id}
</update>
</mapper>
Java Code to Update Data:
import org.apache.ibatis.session.SqlSession;
public class EmployeeService {
private SqlSession session;
public EmployeeService(SqlSession session) {
this.session = session;
}
public void updateEmployee(Employee employee) {
session.update("com.example.mapper.EmployeeMapper.updateEmployee", employee);
session.commit(); // Commit the transaction
}
}
এখানে:
updateট্যাগ ব্যবহার করে SQL আপডেট কুয়েরি চালানো হয়েছে।#{}প্যাটার্ন ব্যবহার করে Employee ক্লাসের প্রপার্টি SQL কুয়েরির সাথে যুক্ত করা হয়েছে।
4. Delete Operation (Deleting Data)
iBATIS-এ ডেটা ডিলিট করার জন্য DELETE কুয়েরি ব্যবহৃত হয়। ডেটাবেস থেকে একটি রেকর্ড মুছে ফেলতে delete ট্যাগ ব্যবহার করা হয়।
Delete Operation Example:
SQL Mapping File (XML):
<mapper namespace="com.example.mapper.EmployeeMapper">
<delete id="deleteEmployee" parameterType="int">
DELETE FROM employee WHERE id = #{id}
</delete>
</mapper>
Java Code to Delete Data:
import org.apache.ibatis.session.SqlSession;
public class EmployeeService {
private SqlSession session;
public EmployeeService(SqlSession session) {
this.session = session;
}
public void deleteEmployee(int id) {
session.delete("com.example.mapper.EmployeeMapper.deleteEmployee", id);
session.commit(); // Commit the transaction
}
}
এখানে:
deleteট্যাগ ব্যবহার করা হয়েছে ডেটাবেসের একটি রেকর্ড মুছে ফেলার জন্য।#{}প্যাটার্ন ব্যবহার করে SQL কুয়েরিতে প্যারামিটার পাঠানো হয়েছে।
Additional Features in iBATIS:
- Dynamic SQL: iBATIS ডেভেলপারদের dynamic SQL তৈরি করতে সহায়ক। এতে , , ট্যাগ ব্যবহার করে ডেটাবেস কুয়েরি তৈরি করা যায়, যা ডেটাবেস থেকে ডাইনামিকভাবে তথ্য আহরণের ক্ষেত্রে উপকারী।
- Parameter Mapping: iBATIS-এ parameter mapping ব্যবহার করে ডেটাবেস কুয়েরিতে Java অবজেক্টের প্রপার্টি পাঠানো হয়।
- Result Mapping: iBATIS-এ resultMap ব্যবহার করে ডেটাবেস রেকর্ডকে Java objects-এ রূপান্তর করা হয়।
iBATIS (এখন MyBatis) হল একটি SQL-mapping ফ্রেমওয়ার্ক, যা JDBC ভিত্তিক ডেটাবেস অ্যাক্সেস এবং SQL mapping প্রদান করে। iBATIS/ MyBatis দিয়ে আপনি CRUD অপারেশনগুলি (Select, Insert, Update, Delete) খুব সহজেই করতে পারেন। iBATIS SQL-centric ফ্রেমওয়ার্ক, যেখানে ডেভেলপারদের SQL কুয়েরির উপর পূর্ণ নিয়ন্ত্রণ থাকে এবং সেই কুয়েরির সাথে Java objects এর ম্যাপিং করে। iBATIS/ MyBatis এর মধ্যে ডাইনামিক SQL, parameter mapping, result mapping সহ আরও অনেক সুবিধা রয়েছে, যা জটিল ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে সহায়ক।
Read more