Select, Insert, Update, Delete Statements এর জন্য Mapping

SQL Statements এবং XML Mapping - আইবাটিস (iBATIS) - Java Technologies

454

iBATIS (বর্তমানে MyBatis নামে পরিচিত) একটি জনপ্রিয় ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা SQL কুয়েরির মাধ্যমে ডেটাবেসের সাথে কাজ করে। iBATIS ডেটাবেসের টেবিলগুলির সাথে Java Objects মেপ করতে সহায়তা করে। এতে Select, Insert, Update, এবং Delete স্টেটমেন্টের জন্য Mapping করার কাজটি সহজ হয়।

এই গাইডে আমরা Select, Insert, Update, এবং Delete কুয়েরি কিভাবে iBATIS (MyBatis) দিয়ে Java কোডে মেপিং করতে হয়, তা দেখব।


1. MyBatis Mapping Overview

MyBatis এ, SQL কুয়েরি এবং তাদের সম্পর্কিত জাভা অবজেক্টগুলির মধ্যে Mapping এর জন্য XML মেপিং ফাইল ব্যবহার করা হয়। iBATIS-এ সাধারণত Mapper XML Files ব্যবহার করে SQL কুয়েরি এবং তাদের ফলাফল মেপ করা হয়।

Example: Employee Entity Class

প্রথমে, আমাদের একটি Employee ক্লাস দরকার, যা ডেটাবেসের employee টেবিলের সাথে মেপ করা হবে।

public class Employee {
    private int id;
    private String name;
    private String department;

    // Getters and Setters
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}

2. MyBatis Mapper XML Example

এখন, আমরা Employee ক্লাসের জন্য Mapper XML ফাইল তৈরি করব, যেখানে Select, Insert, Update, এবং Delete কুয়েরি এবং তাদের মেপিং কনফিগার করা হবে।

EmployeeMapper.xml Example:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//iBATIS//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/sql-map-3.dtd">
<mapper namespace="com.example.mapper.EmployeeMapper">

    <!-- Select Query: Get Employee by ID -->
    <select id="getEmployeeById" resultType="com.example.model.Employee">
        SELECT id, name, department
        FROM employee
        WHERE id = #{id}
    </select>

    <!-- Insert Query: Insert a new Employee -->
    <insert id="insertEmployee" parameterType="com.example.model.Employee">
        INSERT INTO employee (name, department)
        VALUES (#{name}, #{department})
    </insert>

    <!-- Update Query: Update Employee details -->
    <update id="updateEmployee" parameterType="com.example.model.Employee">
        UPDATE employee
        SET name = #{name}, department = #{department}
        WHERE id = #{id}
    </update>

    <!-- Delete Query: Delete an Employee by ID -->
    <delete id="deleteEmployee" parameterType="int">
        DELETE FROM employee
        WHERE id = #{id}
    </delete>

</mapper>

বিভিন্ন Query এর ব্যাখ্যা:

  1. <select>:
    • id="getEmployeeById": এই কুয়েরি Employee অবজেক্টের id দিয়ে ডেটাবেস থেকে Employee তথ্য রিটার্ন করবে।
    • resultType="com.example.model.Employee": কুয়েরি রিটার্নের ফলাফল একটি Employee অবজেক্টে ম্যাপ করা হবে।
  2. <insert>:
    • id="insertEmployee": নতুন Employee ইনসার্ট করার জন্য SQL কুয়েরি।
    • parameterType="com.example.model.Employee": Employee অবজেক্টের মধ্যে থাকা ডেটা name এবং department হিসাবে SQL কুয়েরিতে ম্যাপ হবে।
  3. <update>:
    • id="updateEmployee": একটি Employee এর তথ্য আপডেট করতে ব্যবহৃত কুয়েরি।
    • parameterType="com.example.model.Employee": Employee অবজেক্টের ডেটা SQL কুয়েরিতে আপডেট হবে।
  4. <delete>:
    • id="deleteEmployee": একটি Employee রেকর্ড ডিলিট করার জন্য SQL কুয়েরি।
    • parameterType="int": ডিলিট অপারেশনটি id এর মাধ্যমে হবে।

3. Java Code to Use MyBatis Mapping

এখন, Java কোডে MyBatis ব্যবহারের মাধ্যমে এই কুয়েরি চালাতে হবে। আমরা SqlSession এবং Mapper ব্যবহার করে ডেটাবেস অপারেশনগুলি চালাবো।

EmployeeApp.java Example:

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.example.model.Employee;

public class EmployeeApp {

    public static void main(String[] args) {
        // Step 1: Build SqlSessionFactory from the configuration file
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder()
                .build(EmployeeApp.class.getResourceAsStream("/sql-map-config.xml"));

        // Step 2: Open a session
        try (SqlSession session = sessionFactory.openSession()) {

            // Step 3: Execute SQL query using the Mapper
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            
            // Select Query: Get Employee by ID
            Employee employee = mapper.getEmployeeById(1);
            System.out.println("Employee: " + employee.getName() + ", " + employee.getDepartment());

            // Insert Query: Insert a new employee
            Employee newEmployee = new Employee();
            newEmployee.setName("John Doe");
            newEmployee.setDepartment("Finance");
            mapper.insertEmployee(newEmployee);
            session.commit(); // Commit transaction

            // Update Query: Update an employee
            employee.setName("Updated Name");
            mapper.updateEmployee(employee);
            session.commit(); // Commit transaction

            // Delete Query: Delete an employee
            mapper.deleteEmployee(1);
            session.commit(); // Commit transaction

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. Explanation of Java Code:

  • SqlSessionFactory: sql-map-config.xml কনফিগারেশন ফাইল থেকে SqlSessionFactory তৈরি করা হচ্ছে।
  • SqlSession: SqlSession অবজেক্ট ব্যবহার করে SQL কুয়েরি চালানো হয়।
  • mapper.getEmployeeById(1): EmployeeMapper এর মাধ্যমে getEmployeeById কুয়েরি চালানো হয়।
  • mapper.insertEmployee(newEmployee): insertEmployee কুয়েরি ব্যবহার করে নতুন কর্মচারী ইনসার্ট করা হয়।
  • mapper.updateEmployee(employee): updateEmployee কুয়েরি ব্যবহার করে কর্মচারী আপডেট করা হয়।
  • mapper.deleteEmployee(1): deleteEmployee কুয়েরি ব্যবহার করে কর্মচারী ডিলিট করা হয়।
  • session.commit(): ডেটাবেসে পরিবর্তন নিশ্চিত করার জন্য কমিট করা হয়।

5. Gradle অথবা Maven দিয়ে প্রোজেক্ট বিল্ড এবং রান করা

প্রোজেক্টটি কম্পাইল এবং রান করার জন্য, আপনি Gradle বা Maven ব্যবহার করতে পারেন।

For Gradle:

# Build the project
gradle build

# Run the project
gradle run

For Maven:

# Build the project
mvn clean install

# Run the project
mvn exec:java

এই গাইডে আমরা দেখলাম কিভাবে iBATIS (MyBatis) এর মাধ্যমে Select, Insert, Update, এবং Delete স্টেটমেন্টগুলোকে XML Mapper ফাইলের মাধ্যমে মেপ করা যায়। এই পদ্ধতিতে আপনি:

  1. MyBatis Mapper XML ব্যবহার করে SQL কুয়েরি তৈরি এবং তাদের Java অবজেক্টের সাথে মেপ করতে পারেন।
  2. SqlSession এবং Mapper এর মাধ্যমে ডেটাবেস অপারেশনগুলি পরিচালনা করতে পারেন।
  3. Gradle বা Maven ব্যবহার করে প্রোজেক্ট বিল্ড এবং রান করতে পারেন।

MyBatis (iBATIS) ব্যবহার করলে SQL কুয়েরি এবং ডেটাবেস অপারেশনগুলির সাথে কাজ করা খুবই সহজ এবং কার্যকরী হয়।

Content added By
Promotion

Are you sure to start over?

Loading...