java.sql.DatabaseMetaData
giao diện cung cấp các phương pháp để lấy dữ liệu meta của máy chủ cơ sở dữ liệu được kết nối của bạn. Các ví dụ dưới đây sẽ chỉ cho bạn cách thực hiện điều đó từng cái một.
java.sql.DatabaseMetaData Instance
Đối tượng DatabaseMetaData được truy xuất từ đối tượng Kết nối cơ sở dữ liệu.
DatabaseMetaData dbmd = dbConn.getMetaData();
Tên và phiên bản DB
String dbProductName = dbmd.getDatabaseProductName();
String dbProductVersion = dbmd.getDatabaseProductVersion();
int dbMajorVersion = dbmd.getDatabaseMajorVersion();
int dbMinorVersion = dbmd.getDatabaseMinorVersion();
Phiên bản trình điều khiển JDBC
int jdbcDriverMajorVersion = dbmd.getDriverMajorVersion();
int jdbcDriverMinorVersion = dbmd.getDriverMinorVersion();
Danh sách cơ sở dữ liệu
ResultSet rs = dbmd.getCatalogs(); if(rs!=null) { while(rs.next()) { String catalogName = rs.getString(1); System.out.println("Database catalog : " + catalogName); } }
Danh sách bảng
// Get all tables of this database. ResultSet tblRs = dbmd.getTables(catalogName, "", "", null); if(tblRs!=null) { while(tblRs.next()) { // Get table String tmpDBName = tblRs.getString(1); String tmpTblName = tblRs.getString(3); System.out.println("DB : " + tmpDBName + " , table : " + tmpTblName); } }
Danh sách cột của bảng
// Get columns ResultSet columnRs = dbmd.getColumns(catalogName, "", tmpTblName, ""); if(columnRs!=null) { while(columnRs.next()) { // Get column type and name. String cType = columnRs.getString(6); String cName = columnRs.getString(4); System.out.println("Column Name : " + cName + " , Column Type : " + cType); } }
Mã mẫu đầy đủ
Ví dụ dưới đây sẽ sử dụng máy chủ cơ sở dữ liệu MySQL.
public class DatabaseMetaDataExample { public static void main(String[] args) { try { /* Below are db connection required data. */ String ip = "localhost"; int port = 3306; String dbName = "test"; String userName = "root"; String password = ""; DatabaseMetaDataExample dbmdExample = new DatabaseMetaDataExample(); // Get database connection. Connection dbConn = dbmdExample.getMySqlConnection(ip, port, dbName, userName, password); // Get database metadata. DatabaseMetaData dbmd = dbConn.getMetaData(); // Get db name. String dbProductName = dbmd.getDatabaseProductName(); System.out.println("DB product name : " + dbProductName); // Get db product version. String dbProductVersion = dbmd.getDatabaseProductVersion(); System.out.println("DB product version : " + dbProductVersion); // Get db major & minor version. int dbMajorVersion = dbmd.getDatabaseMajorVersion(); System.out.println("DB major version : " + dbMajorVersion); int dbMinorVersion = dbmd.getDatabaseMinorVersion(); System.out.println("DB minor version : " + dbMinorVersion); // Get jdbc driver major & minor version. int jdbcDriverMajorVersion = dbmd.getDriverMajorVersion(); System.out.println("JDBC driver major version : " + jdbcDriverMajorVersion); int jdbcDriverMinorVersion = dbmd.getDriverMinorVersion(); System.out.println("JDBC driver minor version : " + jdbcDriverMinorVersion); // Get all database catalogs. ResultSet rs = dbmd.getCatalogs(); if(rs!=null) { while(rs.next()) { String catalogName = rs.getString(1); System.out.println("Database catalog : " + catalogName); // Get all tables of this database. ResultSet tblRs = dbmd.getTables(catalogName, "", "", null); if(tblRs!=null) { while(tblRs.next()) { // Get table String tmpDBName = tblRs.getString(1); String tmpTblName = tblRs.getString(3); System.out.println("DB : " + tmpDBName + " , table : " + tmpTblName); // Get columns ResultSet columnRs = dbmd.getColumns(catalogName, "", tmpTblName, ""); if(columnRs!=null) { while(columnRs.next()) { // Get column type and name. String cType = columnRs.getString(6); String cName = columnRs.getString(4); System.out.println("Column Name : " + cName + " , Column Type : " + cType); } } } } } } dbmdExample.closeDBResource(null, dbConn); } catch (SQLException ex) { ex.printStackTrace(); } } /* This method return java.sql.Connection object from MySQL server. */ public Connection getMySqlConnection(String ip, int port, String dbName, String userName, String password) { /* Declare and initialize a sql Connection variable. */ Connection ret = null; try { /* Register for mysql jdbc driver class. */ Class.forName("com.mysql.jdbc.Driver"); /* Create mysql connection url. */ String mysqlConnUrl = "jdbc:mysql://" + ip + ":" + port + "/" + dbName; /* Get the mysql Connection object. */ ret = DriverManager.getConnection(mysqlConnUrl, userName , password); }catch(Exception ex) { ex.printStackTrace(); }finally { return ret; } } /* Close statement and connection after use, this can avoid resource waste. */ public void closeDBResource(Statement stmt, Connection conn) { try { if(stmt!=null) { stmt.close(); stmt = null; } if(conn!=null) { conn.close(); conn = null; } }catch(Exception ex) { ex.printStackTrace(); } } }
Mã nguồn:
- [tải xuống id =”2567 ″]
Tham khảo:
- Cơ sở dữ liệu giao diệnMetaData