iBATIS (বর্তমানে MyBatis) একটি জনপ্রিয় Object-Relational Mapping (ORM) ফ্রেমওয়ার্ক যা Java অ্যাপ্লিকেশন এবং relational databases এর মধ্যে সম্পর্ক স্থাপন করতে সাহায্য করে। iBATIS SQL-centric একটি ফ্রেমওয়ার্ক, যেখানে ডেভেলপারদের SQL কুয়েরি লিখতে হয় এবং সেই কুয়েরিগুলি Java objects এর সাথে ম্যাপ করা হয়।
CRUD অপারেশন হল ডেটাবেসের প্রতি মৌলিক কার্যক্রম যেগুলি হল:
- Create – নতুন রেকর্ড তৈরি করা।
- Read – ডেটাবেস থেকে রেকর্ড পড়া।
- Update – বিদ্যমান রেকর্ড আপডেট করা।
- Delete – ডেটাবেস থেকে রেকর্ড মুছে ফেলা।
iBATIS এই CRUD অপারেশনগুলি সম্পাদন করতে সাহায্য করে এবং SQL কুয়েরি সরাসরি XML configuration files এর মাধ্যমে Java objects এর সাথে সম্পর্ক স্থাপন করে।
iBATIS-এ CRUD অপারেশনগুলো কিভাবে কাজ করে
1. Create (INSERT Operation)
iBATIS-এ একটি নতুন রেকর্ড তৈরি করতে INSERT SQL query ব্যবহার করা হয়। INSERT কুয়েরি Java objects থেকে ডেটা নিয়ে ডেটাবেসে রেকর্ড সেভ করে।
Example:
SQLMap Configuration (SQLMap.xml)
<sqlMap namespace="Employee">
<!-- INSERT query to add a new employee -->
<insert id="insertEmployee" parameterClass="com.example.Employee">
INSERT INTO employee (name, salary)
VALUES (#name#, #salary#)
</insert>
</sqlMap>
Java Code (Main.java)
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.Reader;
public class Main {
public static void main(String[] args) throws Exception {
// Create SqlMapClient
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
// Create a new Employee object
Employee employee = new Employee("John Doe", 50000);
// Insert Employee record into database
sqlMap.insert("Employee.insertEmployee", employee);
}
}
এখানে:
insert: SQLMap XML ফাইলেinsertকুয়েরি ব্যবহার করা হয়েছে যা Employee অবজেক্টেরnameএবংsalaryডেটাবেসে ইনসার্ট করে।- Java Code: Java কোডে
sqlMap.insert()মেথড ব্যবহার করা হয়েছে যাEmployee.insertEmployeeকুয়েরি চালাবে।
2. Read (SELECT Operation)
iBATIS-এ ডেটাবেস থেকে রেকর্ড পড়তে SELECT SQL query ব্যবহার করা হয়। SELECT কুয়েরি Java objects এর সাথে ম্যাপ করা হয় এবং ডেটাবেস থেকে রেকর্ড রিটার্ন করা হয়।
Example:
SQLMap Configuration (SQLMap.xml)
<sqlMap namespace="Employee">
<!-- SELECT query to get employee by ID -->
<select id="getEmployeeById" parameterClass="int" resultClass="com.example.Employee">
SELECT id, name, salary FROM employee WHERE id = #id#
</select>
</sqlMap>
Java Code (Main.java)
public class Main {
public static void main(String[] args) throws Exception {
// Create SqlMapClient
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
// Retrieve Employee by ID
Employee employee = (Employee) sqlMap.queryForObject("Employee.getEmployeeById", 1);
// Display Employee details
System.out.println("Employee Name: " + employee.getName());
}
}
এখানে:
select: SQLMap XML ফাইলেselectকুয়েরি ব্যবহার করা হয়েছে যা Employee রেকর্ড ডেটাবেস থেকে id অনুযায়ী পড়ে এবং Java object হিসেবে রিটার্ন করে।- Java Code:
sqlMap.queryForObject()মেথড ব্যবহার করা হয়েছে যাEmployee.getEmployeeByIdকুয়েরি চালিয়েEmployeeঅবজেক্ট রিটার্ন করে।
3. Update (UPDATE Operation)
iBATIS-এ বিদ্যমান রেকর্ড আপডেট করতে UPDATE SQL query ব্যবহার করা হয়। UPDATE কুয়েরি Java objects এর মাধ্যমে প্রাপ্ত ডেটা ব্যবহার করে ডেটাবেসের রেকর্ড আপডেট করে।
Example:
SQLMap Configuration (SQLMap.xml)
<sqlMap namespace="Employee">
<!-- UPDATE query to update employee salary -->
<update id="updateEmployeeSalary" parameterClass="com.example.Employee">
UPDATE employee
SET salary = #salary#
WHERE id = #id#
</update>
</sqlMap>
Java Code (Main.java)
public class Main {
public static void main(String[] args) throws Exception {
// Create SqlMapClient
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
// Create Employee object to update
Employee employee = new Employee("John Doe", 60000);
employee.setId(1);
// Update employee salary in the database
sqlMap.update("Employee.updateEmployeeSalary", employee);
}
}
এখানে:
update: SQLMap XML ফাইলেupdateকুয়েরি ব্যবহার করা হয়েছে যাEmployeeঅবজেক্টেরsalaryআপডেট করে।- Java Code:
sqlMap.update()মেথড ব্যবহার করা হয়েছে যাEmployee.updateEmployeeSalaryকুয়েরি চালিয়ে ডেটাবেসে salary আপডেট করবে।
4. Delete (DELETE Operation)
iBATIS-এ ডেটাবেস থেকে রেকর্ড মুছে ফেলতে DELETE SQL query ব্যবহার করা হয়। DELETE কুয়েরি Java objects এর মাধ্যমে ডেটাবেসের রেকর্ড মুছে ফেলে।
Example:
SQLMap Configuration (SQLMap.xml)
<sqlMap namespace="Employee">
<!-- DELETE query to delete employee by ID -->
<delete id="deleteEmployeeById" parameterClass="int">
DELETE FROM employee WHERE id = #id#
</delete>
</sqlMap>
Java Code (Main.java)
public class Main {
public static void main(String[] args) throws Exception {
// Create SqlMapClient
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
// Delete Employee by ID
sqlMap.delete("Employee.deleteEmployeeById", 1);
}
}
এখানে:
delete: SQLMap XML ফাইলেdeleteকুয়েরি ব্যবহার করা হয়েছে যাEmployeeরেকর্ডটিidঅনুযায়ী ডেটাবেস থেকে মুছে ফেলে।- Java Code:
sqlMap.delete()মেথড ব্যবহার করা হয়েছে যাEmployee.deleteEmployeeByIdকুয়েরি চালিয়েEmployeeরেকর্ড মুছে ফেলবে।
iBATIS-এ CRUD অপারেশন সংক্ষেপে
| CRUD Operation | SQLMap Configuration | Java Code |
|---|---|---|
| Create | <insert id="insertEmployee" /> | sqlMap.insert("Employee.insertEmployee", employee) |
| Read | <select id="getEmployeeById" /> | sqlMap.queryForObject("Employee.getEmployeeById", id) |
| Update | <update id="updateEmployeeSalary" /> | sqlMap.update("Employee.updateEmployeeSalary", employee) |
| Delete | <delete id="deleteEmployeeById" /> | sqlMap.delete("Employee.deleteEmployeeById", id) |
iBATIS (MyBatis) হল একটি SQL-centric ORM ফ্রেমওয়ার্ক যা Java objects এবং relational databases এর মধ্যে সম্পর্ক স্থাপন করে। iBATIS ডেটাবেসের সঙ্গে CRUD (Create, Read, Update, Delete) অপারেশনগুলি চালানোর জন্য সরাসরি SQL কুয়েরি ব্যবহার করে এবং SQL কুয়েরি এবং Java objects এর মধ্যে mapping তৈরি করে। এটি ডেভেলপারদের SQL কুয়েরি পুরোপুরি কাস্টমাইজ এবং নিয়ন্ত্রণ করতে সহায়ক করে, যদিও Hibernate বা JPA এর তুলনায় SQL কুয়েরির জন্য বেশি কোড লেখার প্রয়োজন হয়। iBATIS CRUD অপারেশনগুলি খুবই শক্তিশালী এবং কার্যকরী যখন আপনার কাস্টম SQL কুয়েরি চালানোর প্রয়োজন হয়।
Read more