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();