কম্পিউটার টিউটোরিয়াল

JDBC-MySQL কানেকশনে স্টোরেজ ইঞ্জিন নাম বের করা (information_schema)

Java JDBC-এ MySQL ডেটাবেস থেকে একটি টেবিলের স্টোরেজ ইঞ্জিন (InnoDB, MyISAM, ইত্যাদি) বের করার জন্য information_schema.tables কুয়েরি করা হয়।

টেবিল তৈরি

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20),
    Age INT,
    CountryName VARCHAR(20)
);

জাভা কোড (JDBC)

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

public class GetTheStorageEngine {
    public static void main(String[] args) {
        String hostURL = "jdbc:mysql://localhost:3306/web?useSSL=false";
        Connection con = null;
        Statement stmt = null;
        try {
            con = DriverManager.getConnection(hostURL, "root", "123456");
            stmt = con.createStatement();
            String yourTablename = "DemoTable";
            ResultSet resultSet = stmt.executeQuery(
                "SELECT ENGINE FROM information_schema.tables " +
                "WHERE TABLE_NAME = '" + yourTablename + "'"
            );
            resultSet.next();
            System.out.println("The storage engine is=" + resultSet.getString(1));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

আউটপুট

The storage engine is=InnoDB

SQL কুয়েরি ব্যাখ্যা

SELECT ENGINE 
FROM information_schema.tables 
WHERE TABLE_NAME = 'DemoTable' 
  AND TABLE_SCHEMA = DATABASE(); -- বর্তমান ডেটাবেস
  • TABLE_SCHEMA ফিল্টার যোগ করুন একই নামে একাধিক ডেটাবেস থাকলে
  • ENGINE কলামে ইঞ্জিন নাম থাকে (InnoDB, MyISAM, Memory, CSV, Archive)

সিকিউরিটি নোট

উপরের কোডে স্ট্রিং কনক্যাটেনেশন ব্যবহার করা হয়েছে — SQL ইনজেকশন ঝুঁকি আছে। প্রোডাকশনে PreparedStatement ব্যবহার করুন:

PreparedStatement ps = con.prepareStatement(
    "SELECT ENGINE FROM information_schema.tables WHERE TABLE_NAME = ? AND TABLE_SCHEMA = DATABASE()"
);
ps.setString(1, yourTablename);
ResultSet rs = ps.executeQuery();
  1. MySQL JDBC ড্রাইভার কানেকশন স্ট্রিং কী?

  2. MySQL Workbench-এ কানেকশন অ্যালাইভ রাখার সেটিংস

  3. MySQL-এ BIT(1) ফিল্ডের মান প্রদর্শন করুন

  4. MySQL-এ ALTER TABLE ... ENGINE দিয়ে স্টোরেজ ইঞ্জিন পরিবর্তন করা