JDBC এর সাথে Apache Derby ব্যবহার

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby)
234
234

JDBC (Java Database Connectivity) হল একটি API যা Java অ্যাপ্লিকেশনকে ডেটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়। Apache Derby একটি Java-ভিত্তিক ডেটাবেস সিস্টেম, তাই JDBC ব্যবহার করে Apache Derby-এ ডেটা পরিচালনা করা খুবই সহজ। নিচে JDBC দিয়ে Apache Derby ব্যবহার করার প্রক্রিয়া বর্ণনা করা হলো।


১. Apache Derby JDBC ড্রাইভার সেটআপ

প্রথমে আপনাকে Apache Derby JDBC ড্রাইভার জার ফাইল JAR ফাইলের পাথ সঠিকভাবে সেট করতে হবে, যা সাধারণত derby.jar নামে থাকে।

  1. Apache Derby ইনস্টল করার পর, derby.jar ফাইলটি $DERBY_HOME/lib ডিরেক্টরিতে থাকবে।
  2. আপনার Java প্রোজেক্টে derby.jar যোগ করতে হবে, অথবা আপনি CLASSPATH-এ derby.jar পাথ যোগ করতে পারেন।

উদাহরণ:

export CLASSPATH=$CLASSPATH:/path/to/derby/lib/derby.jar

২. JDBC কনফিগারেশন এবং ডেটাবেস সংযোগ

আপনার Java কোডে JDBC ব্যবহার করে Apache Derby ডেটাবেসের সাথে সংযোগ স্থাপন করতে হলে নিম্নলিখিত ধাপগুলো অনুসরণ করতে হবে:

(১) ডেটাবেস কনফিগারেশন এবং সংযোগ

আপনি JDBC URL ব্যবহার করে Apache Derby ডেটাবেসে সংযোগ স্থাপন করবেন। ডেটাবেস সংযোগের জন্য DriverManager ক্লাসের getConnection() মেথড ব্যবহার করা হয়।

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DerbyExample {
    public static void main(String[] args) {
        // Derby JDBC URL
        String url = "jdbc:derby:myDB;create=true";  // create=true ডেটাবেসটি তৈরি করবে যদি তা না থাকে

        // সংযোগ স্থাপন
        try (Connection conn = DriverManager.getConnection(url)) {
            System.out.println("Connection established successfully.");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এই কোডটি myDB নামে একটি ডেটাবেস তৈরি করবে (যদি এটি আগে থেকেই না থাকে) এবং তার সাথে সংযোগ স্থাপন করবে।


৩. SQL কুয়েরি চালানো

ডেটাবেসে SQL কুয়েরি চালানোর জন্য Statement বা PreparedStatement ব্যবহার করা হয়। এখানে INSERT, SELECT, UPDATE, এবং DELETE কুয়েরি চালানোর উদাহরণ দেওয়া হলো।

(১) Data Insert করা

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class InsertExample {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true";  // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement()) {

            String sql = "INSERT INTO employee (id, name, age) VALUES (1, 'John Doe', 30)";
            stmt.executeUpdate(sql);  // ইনসার্ট কুয়েরি চালানো

            System.out.println("Data inserted successfully.");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

(২) Data Select করা

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SelectExample {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true";  // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement()) {

            String sql = "SELECT * FROM employee";
            ResultSet rs = stmt.executeQuery(sql);  // সিলেক্ট কুয়েরি চালানো

            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);
            }

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

(৩) Data Update করা

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class UpdateExample {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true";  // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement()) {

            String sql = "UPDATE employee SET age = 35 WHERE id = 1";
            stmt.executeUpdate(sql);  // আপডেট কুয়েরি চালানো

            System.out.println("Data updated successfully.");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

(৪) Data Delete করা

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class DeleteExample {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true";  // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement()) {

            String sql = "DELETE FROM employee WHERE id = 1";
            stmt.executeUpdate(sql);  // ডিলিট কুয়েরি চালানো

            System.out.println("Data deleted successfully.");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

৪. ডেটাবেস সংযোগ বন্ধ করা

ডেটাবেসের সাথে কাজ শেষ হওয়ার পর সংযোগ বন্ধ করা গুরুত্বপূর্ণ। Connection অবজেক্টের close() মেথড ব্যবহার করে সংযোগ বন্ধ করা হয়।

conn.close();  // ডেটাবেস সংযোগ বন্ধ করা

সারাংশ

  • JDBC ব্যবহার করে আপনি Java অ্যাপ্লিকেশন থেকে Apache Derby ডেটাবেসে সংযোগ স্থাপন এবং SQL কুয়েরি চালাতে পারবেন।
  • DriverManager ব্যবহার করে ডেটাবেসের সাথে সংযোগ স্থাপন করতে হয়।
  • Statement বা PreparedStatement ব্যবহার করে আপনি ডেটাবেসে INSERT, SELECT, UPDATE, এবং DELETE অপারেশন করতে পারবেন।
  • ডেটাবেসে কাজ শেষ হলে সংযোগটি বন্ধ করা গুরুত্বপূর্ণ।
common.content_added_by

JDBC API এর সংক্ষিপ্ত পরিচয়

239
239

JDBC (Java Database Connectivity) হল Java প্ল্যাটফর্মের একটি গুরুত্বপূর্ণ API যা Java অ্যাপ্লিকেশনগুলিকে ডেটাবেসের সাথে সংযোগ স্থাপন এবং ডেটাবেসের উপর বিভিন্ন অপারেশন (যেমন, ডেটা পড়া, লেখা, আপডেট, মুছে ফেলা) করার সুবিধা প্রদান করে। এটি Java প্রোগ্রামিং ভাষায় ডেটাবেস অ্যাপ্লিকেশন তৈরি করার জন্য একটি স্ট্যান্ডার্ড ইন্টারফেস হিসেবে কাজ করে। JDBC API ডেটাবেসের সাথে যোগাযোগের জন্য বিভিন্ন ক্লাস ও ইন্টারফেস সরবরাহ করে, যার মাধ্যমে SQL কোড এক্সিকিউট করা এবং ডেটাবেস থেকে তথ্য পরিচালনা করা যায়।


JDBC এর প্রধান বৈশিষ্ট্যসমূহ:

  1. ডেটাবেসের সাথে সংযোগ: JDBC API ব্যবহার করে Java অ্যাপ্লিকেশনগুলি ডেটাবেসের সাথে সংযোগ স্থাপন করতে পারে। এই সংযোগের জন্য ড্রাইভার এবং URL প্রয়োজন।

    উদাহরণ:

    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
    
  2. SQL কোয়েরি এক্সিকিউট করা: JDBC API SQL স্টেটমেন্ট (যেমন SELECT, INSERT, UPDATE) এক্সিকিউট করতে সক্ষম। এর জন্য Statement, PreparedStatement, এবং CallableStatement ইন্টারফেস ব্যবহার করা হয়।

    উদাহরণ:

    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM users");
    
  3. ডেটাবেস ফলাফল পাওয়া: SQL কোয়েরি এক্সিকিউট করার পর, ResultSet ইন্টারফেস ব্যবহার করে ডেটাবেসের ফলাফল পাওয়া যায়।

    উদাহরণ:

    while (rs.next()) {
        System.out.println(rs.getString("name"));
    }
    
  4. ট্রানজেকশন সমর্থন: JDBC API ট্রানজেকশন ব্যবস্থাপনা সমর্থন করে। ডেটাবেস অপারেশনগুলিকে একযোগভাবে পরিচালনা করা যায়, যাতে ডেটাবেসে পরিবর্তনগুলি সফলভাবে সংঘটিত হয় বা ব্যর্থ হলে সবকিছু রোলব্যাক করা যায়।

    উদাহরণ:

    conn.setAutoCommit(false);  // ট্রানজেকশন শুরু
    // SQL অপারেশনগুলি
    conn.commit();  // পরিবর্তন সেভ করা
    
  5. এগজিকিউশন এবং পারফরমেন্স অপটিমাইজেশন: PreparedStatement ব্যবহার করে SQL কোয়েরি প্রিপেয়ার করা এবং পুনরায় এক্সিকিউট করা যেতে পারে, যা কোডের পারফরমেন্স উন্নত করে এবং SQL ইনজেকশন রোধ করে।

JDBC API এর প্রধান উপাদানগুলো:

  1. DriverManager: JDBC ড্রাইভার ব্যবস্থাপনা করে, যা ডেটাবেসে সংযোগ স্থাপন করতে ব্যবহৃত হয়।
  2. Connection: ডেটাবেসের সাথে সংযোগ স্থাপন করে এবং ডেটাবেসের সাথে যোগাযোগ পরিচালনা করে।
  3. Statement: SQL কোয়েরি এক্সিকিউট করার জন্য ব্যবহৃত হয়। এটি ৩ ধরনের হয়:
    • Statement
    • PreparedStatement
    • CallableStatement
  4. ResultSet: SQL কোয়েরি এক্সিকিউট করার পর ডেটাবেসের ফলাফল ধারণ করে।
  5. SQLException: JDBC সম্পর্কিত ত্রুটি পরিচালনার জন্য ব্যবহৃত হয়।

JDBC ড্রাইভার টাইপসমূহ:

  1. Type-1 Driver (JDBC-ODBC Bridge Driver): ODBC ড্রাইভার ব্যবহার করে JDBC API এবং ডেটাবেসের মধ্যে সংযোগ স্থাপন।
  2. Type-2 Driver (Native-API Driver): স্থানীয় ডেটাবেস API ব্যবহার করে JDBC অ্যাপ্লিকেশন এবং ডেটাবেসের মধ্যে সংযোগ স্থাপন।
  3. Type-3 Driver (Network Protocol Driver): একটি নেটওয়ার্ক প্রটোকল ব্যবহার করে JDBC অ্যাপ্লিকেশন এবং ডেটাবেসের মধ্যে সংযোগ স্থাপন।
  4. Type-4 Driver (Thin Driver): সম্পূর্ণ Java ভাষায় তৈরি, যা ডেটাবেসের সাথে সরাসরি যোগাযোগ করে।

উপসংহার

JDBC API একটি শক্তিশালী টুল যা Java ডেভেলপারদের জন্য ডেটাবেসের সাথে সহজে যোগাযোগ স্থাপন এবং পরিচালনা করার সুযোগ প্রদান করে। এটি SQL কোয়েরি এক্সিকিউট, ডেটাবেস ট্রানজেকশন পরিচালনা, এবং ফলাফল পুনরুদ্ধারের সুবিধা দেয়। JDBC এর মাধ্যমে Java অ্যাপ্লিকেশনগুলি ডেটাবেসে কার্যকরভাবে ইন্টারঅ্যাক্ট করতে পারে, যা ডেটাবেস-ভিত্তিক অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে।

common.content_added_by

JDBC দিয়ে Derby তে সংযোগ

206
206

JDBC (Java Database Connectivity) হল একটি API যা Java প্রোগ্রামগুলিকে ডেটাবেসের সাথে যোগাযোগ স্থাপন করতে সাহায্য করে। Apache Derby একটি Java-ভিত্তিক ডেটাবেস সিস্টেম, এবং এটি JDBC ব্যবহার করে Java অ্যাপ্লিকেশন থেকে ডেটাবেসের সঙ্গে সংযোগ স্থাপন করতে সক্ষম।

নিচে JDBC দিয়ে Apache Derby তে সংযোগ করার জন্য প্রয়োজনীয় ধাপগুলো আলোচনা করা হলো:


JDBC দিয়ে Derby তে সংযোগ স্থাপন করার জন্য পদক্ষেপ

১. Apache Derby ডাউনলোড এবং সেটআপ

প্রথমেই আপনাকে Apache Derby ডাউনলোড করতে হবে। এটি Apache Derby অফিসিয়াল সাইট থেকে ডাউনলোড করা যাবে। ডাউনলোডের পর, এক্সট্র্যাক্ট করতে হবে এবং DERBY_HOME এবং JAVA_HOME পরিবেশ ভেরিয়েবল সেট করতে হবে।

২. Derby JDBC ড্রাইভার লোড করা

Apache Derby এর JDBC ড্রাইভার হল derbyclient.jar এবং derby.jar। এগুলো $DERBY_HOME/lib ফোল্ডারে থাকে। আপনি JDBC ড্রাইভার ব্যবহার করে Derby ডেটাবেসের সাথে সংযোগ স্থাপন করতে পারবেন।

আপনার Java কোডে JDBC ড্রাইভার লোড করার জন্য নিম্নলিখিত কোডটি ব্যবহার করা যাবে:

// JDBC ড্রাইভার লোড
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

৩. ডেটাবেসে সংযোগ স্থাপন

ডেটাবেসে সংযোগ স্থাপনের জন্য DriverManager.getConnection() ব্যবহার করা হয়। যদি আপনি একটি নতুন ডেটাবেস তৈরি করতে চান, তবে create=true প্যারামিটারটি ব্যবহার করতে হবে।

নিচে একটি উদাহরণ দেওয়া হল যেখানে একটি ডেটাবেস তৈরি এবং তাতে সংযোগ স্থাপন করা হচ্ছে:

import java.sql.*;

public class DerbyConnectionExample {
    public static void main(String[] args) {
        // ডেটাবেস সংযোগের জন্য JDBC URL
        String url = "jdbc:derby:myDB;create=true";  // 'myDB' নামে নতুন ডেটাবেস তৈরি হবে

        // ডেটাবেস সংযোগ স্থাপন
        try {
            // ড্রাইভার লোড করা
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

            // ডেটাবেসে সংযোগ
            Connection conn = DriverManager.getConnection(url);

            // সংযোগ সফল হলে মেসেজ প্রদর্শন
            System.out.println("Connection established successfully!");

            // ডেটাবেস সংযোগ বন্ধ করা
            conn.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

উপরের কোডে:

  • "jdbc:derby:myDB;create=true" URL দ্বারা myDB নামে একটি নতুন ডেটাবেস তৈরি করা হয়। create=true অপশনটি নিশ্চিত করে যে, যদি ডেটাবেসটি না থাকে, তবে এটি তৈরি করা হবে।
  • Class.forName("org.apache.derby.jdbc.EmbeddedDriver") ড্রাইভার ক্লাসটি লোড করে।
  • DriverManager.getConnection(url) ডেটাবেসে সংযোগ স্থাপন করে।

৪. টেবিল তৈরি এবং ডেটা ইনসার্ট

সংযোগ স্থাপনের পর, আপনি SQL কুয়েরি ব্যবহার করে টেবিল তৈরি এবং ডেটা ইনসার্ট করতে পারেন।

// টেবিল তৈরি
Statement stmt = conn.createStatement();
String createTableSQL = "CREATE TABLE employee (id INT PRIMARY KEY, name VARCHAR(100), age INT)";
stmt.executeUpdate(createTableSQL);

// ডেটা ইনসার্ট
String insertSQL = "INSERT INTO employee VALUES (1, 'John Doe', 30)";
stmt.executeUpdate(insertSQL);

// ডেটা কুয়েরি করা
ResultSet rs = stmt.executeQuery("SELECT * FROM employee");
while (rs.next()) {
    System.out.println("ID: " + rs.getInt("id"));
    System.out.println("Name: " + rs.getString("name"));
    System.out.println("Age: " + rs.getInt("age"));
}

৫. সংযোগ বন্ধ করা

সংযোগ বন্ধ করার জন্য আপনি conn.close() ব্যবহার করবেন। এটি ডেটাবেসের সংযোগ বন্ধ করে দেয়।


উপসংহার

JDBC দিয়ে Apache Derby তে সংযোগ স্থাপন করা অত্যন্ত সহজ। আপনি JDBC URL, ড্রাইভার ক্লাস, এবং DriverManager.getConnection() ব্যবহার করে সহজেই ডেটাবেসের সাথে সংযোগ স্থাপন করতে পারবেন। একবার সংযোগ স্থাপন হলে, আপনি SQL কুয়েরি ব্যবহার করে ডেটাবেসে অপারেশন করতে পারবেন, যেমন টেবিল তৈরি, ডেটা ইনসার্ট করা, এবং ডেটা কুয়েরি করা।

common.content_added_by

JDBC Statement, PreparedStatement, এবং CallableStatement এর ব্যবহার

206
206

Java Database Connectivity (JDBC) হল Java API যা ডেটাবেসের সঙ্গে যোগাযোগ করতে সাহায্য করে। JDBC-তে ডেটাবেসের সাথে SQL কুয়েরি চালানোর জন্য তিনটি প্রধান ধরণের Statement ব্যবহৃত হয়: Statement, PreparedStatement, এবং CallableStatement। প্রতিটিরই আলাদা ব্যবহার এবং সুবিধা রয়েছে।


1. Statement

Statement হল JDBC-তে SQL কুয়েরি চালানোর জন্য সাধারণত ব্যবহৃত ক্লাস। এটি ডেটাবেসে SQL স্টেটমেন্ট এক্সিকিউট করতে ব্যবহৃত হয় এবং এটি SQL কুয়েরি তৈরি করার জন্য কোনো প্রি-কনফিগারেশন বা প্যারামিটারাইজেশন করতে দেয় না।

ব্যবহার:

  • Statement ব্যবহারের জন্য SQL কুয়েরি রান করার সময় কুয়েরি টেক্সট সরাসরি পাস করতে হয়।
  • এটি সাধারণত ডাইনামিক কুয়েরি বা পরিবর্তনশীল কুয়েরি প্রক্রিয়া করার জন্য উপযুক্ত নয়।

কোড উদাহরণ:

import java.sql.*;

public class StatementExample {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            // ডেটাবেস কানেকশন তৈরি
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");
            
            // Statement তৈরি
            stmt = conn.createStatement();
            
            // SQL কুয়েরি রান করা
            String query = "SELECT * FROM employee";
            rs = stmt.executeQuery(query);

            // রেজাল্ট প্রসেস করা
            while (rs.next()) {
                System.out.println("Employee ID: " + rs.getInt("id"));
                System.out.println("Employee Name: " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

সুবিধা:

  • সহজ এবং দ্রুত SQL কুয়েরি চালানোর জন্য ব্যবহার করা যায়।
  • ছোট বা একক কুয়েরি পরিচালনা করতে উপযুক্ত।

অসুবিধা:

  • SQL ইনজেকশন আক্রমণ (SQL Injection) হতে পারে।
  • কুয়েরি প্রতি নতুন স্টেটমেন্ট তৈরি করা হয়, যা পারফরম্যান্সের জন্য উপকারী নয়।

2. PreparedStatement

PreparedStatement হল একটি উন্নত সংস্করণ যা SQL কুয়েরি নিরাপদভাবে এবং অধিক কার্যকরভাবে চালাতে সহায়তা করে। এতে SQL কুয়েরি তৈরি করার সময় প্যারামিটারাইজেশন (parameterization) করা যায়, যা SQL ইনজেকশন প্রতিরোধ করে এবং কোডের পুনরাবৃত্তি কমায়।

ব্যবহার:

  • SQL কুয়েরি এবং প্যারামিটার একবার কম্পাইল হয় এবং পুনরায় ব্যবহার করা যায়, ফলে এটি performance optimization সহায়তা করে।
  • এটি SQL ইনজেকশন থেকে রক্ষা পায়, কারণ ইউজার ইনপুট প্যারামিটার হিসেবে সুরক্ষিতভাবে ইনজেক্ট করা হয়।

কোড উদাহরণ:

import java.sql.*;

public class PreparedStatementExample {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            // ডেটাবেস কানেকশন তৈরি
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");

            // PreparedStatement তৈরি
            String query = "SELECT * FROM employee WHERE id = ?";
            pstmt = conn.prepareStatement(query);
            
            // প্যারামিটার সেট করা
            pstmt.setInt(1, 101);
            
            // কুয়েরি রান করা
            rs = pstmt.executeQuery();

            // রেজাল্ট প্রসেস করা
            while (rs.next()) {
                System.out.println("Employee ID: " + rs.getInt("id"));
                System.out.println("Employee Name: " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

সুবিধা:

  • SQL Injection প্রতিরোধ করে, কারণ প্যারামিটারগুলি এক্সিকিউট করার আগে সেফলি ইনজেক্ট করা হয়।
  • পুনরাবৃত্তি কোড কমানো এবং দ্রুত পারফরম্যান্স প্রদান।
  • এটি বড় এবং কমপ্লেক্স কুয়েরির জন্য উপযুক্ত।

অসুবিধা:

  • একবার প্রস্তুত হওয়া কুয়েরির পরিবর্তন বা কাস্টমাইজেশন কিছুটা কঠিন হতে পারে।

3. CallableStatement

CallableStatement ব্যবহার করা হয় যখন আপনি SQL স্টোরড প্রোসিডিউর বা ফাংশন কল করতে চান। এটি SQL স্টেটমেন্টের মতো কাজ করে, তবে এটি স্টোরড প্রোসিডিউর বা ফাংশনকে কল করতে ব্যবহৃত হয়, যা সাধারণত ডেটাবেস সাইডে নির্দিষ্ট লজিক বা ফাংশনালিটি বাস্তবায়ন করে।

ব্যবহার:

  • SQL স্টোরড প্রোসিডিউর এবং ফাংশন চালাতে এটি ব্যবহার করা হয়।
  • এটি ইনপুট এবং আউটপুট প্যারামিটার সহ স্টোরড প্রোসিডিউর কল করতে সক্ষম।

কোড উদাহরণ:

import java.sql.*;

public class CallableStatementExample {
    public static void main(String[] args) {
        Connection conn = null;
        CallableStatement cstmt = null;
        ResultSet rs = null;

        try {
            // ডেটাবেস কানেকশন তৈরি
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");

            // স্টোরড প্রোসিডিউর কল করার জন্য CallableStatement তৈরি
            String query = "{call getEmployeeDetails(?)}";
            cstmt = conn.prepareCall(query);
            
            // ইনপুট প্যারামিটার সেট করা
            cstmt.setInt(1, 101);
            
            // স্টোরড প্রোসিডিউর রান করা
            rs = cstmt.executeQuery();

            // রেজাল্ট প্রসেস করা
            while (rs.next()) {
                System.out.println("Employee ID: " + rs.getInt("id"));
                System.out.println("Employee Name: " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) rs.close();
                if (cstmt != null) cstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

সুবিধা:

  • স্টোরড প্রোসিডিউর এবং ফাংশন কল করার জন্য ব্যবহৃত হয়।
  • ডেটাবেসের লজিক বা কমপ্লেক্স অপারেশন এক্সিকিউট করার জন্য উপযুক্ত।
  • আউটপুট প্যারামিটারও হ্যান্ডেল করতে সক্ষম।

অসুবিধা:

  • স্টোরড প্রোসিডিউর বা ফাংশন ডাটাবেস সাইডে আগে থেকেই থাকতে হবে।
  • তাতে কিছুটা কনফিগারেশন বা নির্দিষ্ট ডেটাবেস স্কিমার প্রয়োজন।

সারাংশ

  • Statement সাধারণ SQL কুয়েরি রান করতে ব্যবহৃত হয়, তবে এটি SQL ইনজেকশন বা পুনরাবৃত্তি সমস্যা সৃষ্টি করতে পারে।
  • PreparedStatement নিরাপদ এবং কার্যকর উপায়ে SQL কুয়েরি চালাতে ব্যবহৃত হয়, যা SQL ইনজেকশন থেকে রক্ষা করে এবং পুনরাবৃত্তি কমায়।
  • CallableStatement স্টোরড প্রোসিডিউর বা ফাংশন কল করতে ব্যবহৃত হয়, যা ডেটাবেসের সাথে ইন্টিগ্রেটেড লজিক বা কমপ্লেক্স অপারেশন এক্সিকিউট করে।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion