JDBC DatabaseMetaData.getTables() से MySQL डेटाबेस की सभी टेबल सूचीबद्ध करना
Java कोड उदाहरण
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.DatabaseMetaData;
public class GetAllTables {
public static void main(String[] args) throws SQLException {
Connection conn = null;
try {
// JDBC ड्राइवर लोड करें
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
System.out.println(e);
}
// कनेक्शन स्थापित करें
conn = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost/test", "Manish", "123456");
System.out.println("Connection is created successfully:");
} catch (Exception e) {
System.out.println(e);
}
// मेटाडेटा से टेबल प्राप्त करें
ResultSet rs = null;
DatabaseMetaData meta = (DatabaseMetaData) conn.getMetaData();
rs = meta.getTables(null, null, null, new String[] {"TABLE"});
int count = 0;
System.out.println("All table names are in test database:");
while (rs.next()) {
String tblName = rs.getString("TABLE_NAME");
System.out.println(tblName);
count++;
}
System.out.println(count + " Rows in set");
}
}
आउटपुट (103 टेबल):
Connection is created successfully: All table names are in test database: add30minutesdemo addcolumn addoneday agecalculatesdemo aliasdemo ... (कुल 103 टेबल) ... zipcodepadwithzerodemo 103 Rows in set
MySQL कमांड लाइन से क्रॉस-चेक:
mysql> USE test; Database changed mysql> SHOW TABLES;
दोनों समान 103 टेबल दिखाते हैं।
कोड समझाया:
| चरण | कोड | विवरण |
|---|---|---|
| 1 | Class.forName() | JDBC ड्राइवर लोड (पुराने वर्जन के लिए) |
| 2 | DriverManager.getConnection() | DB कनेक्शन |
| 3 | conn.getMetaData() | DatabaseMetaData ऑब्जेक्ट |
| 4 | meta.getTables(catalog, schema, table, types) | टेबल मेटाडेटा |
| 5 | rs.getString("TABLE_NAME") | टेबल नाम निकालें |
getTables() पैरामीटर:
getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
catalog: कैटलॉग नाम (null = सभी)schemaPattern: स्कीमा पैटर्न (null = सभी)tableNamePattern: टेबल नाम पैटर्न (null = सभी)types: टेबल प्रकार —"TABLE","VIEW","SYSTEM TABLE","ALIAS"
आधुनिक JDBC (Java 8+/MySQL Connector/J 8+):
// ड्राइवर ऑटो-लोड होता है (ServiceLoader)
try (Connection conn = DriverManager.getConnection(url, user, pass);
ResultSet rs = conn.getMetaData().getTables(null, "test", "%", new String[]{"TABLE"})) {
while (rs.next()) {
System.out.println(rs.getString("TABLE_NAME"));
}
}
उपयोग केस:
- डायनामिक स्कीमा इंस्पेक्शन टूल
- माइग्रेशन/डिप्लॉयमेंट स्क्रिप्ट
- एडमिन डैशबोर्ड
- ORM फ्रेमवर्क इंटीग्रेशन