Giao diện DatabaseMetaData trong java cung cấp các phương thức để lấy metadata của cơ sở dữ liệu như tên sản phẩm cơ sở dữ liệu, phiên bản sản phẩm cơ sở dữ liệu, tên driver, tên của tổng số bảng, tên của tổng số các view, ...
Nội dung chính
Làm thế nào để có được đối tượng DatabaseMetaData
Phương thức getMetaData() của Giao diện Connection trả về đối tượng DatabaseMetaData. Cú pháp:
public DatabaseMetaData getMetaData() throws SQLException;
Ví dụ về DatabaseMetaData trong java
Ví dụ 1:
package vn.viettuts.jdbc; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; public class DatabaseMetaDataExample { private static String DB_URL = "jdbc:mysql://localhost:3306/testdb"; private static String USER_NAME = "root"; private static String PASSWORD = "1234567890"; public static void main(String[] args) { try { // connect to database Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(DB_URL, USER_NAME, PASSWORD); // get DatabaseMetaData object DatabaseMetaData dbmd = conn.getMetaData(); // show metadata of database System.out.println("Driver Name: " + dbmd.getDriverName()); System.out.println("Driver Version: " + dbmd.getDriverVersion()); System.out.println("UserName: " + dbmd.getUserName()); System.out.println("Database Product Name: " + dbmd.getDatabaseProductName()); System.out.println("Database Product Version: " + dbmd.getDatabaseProductVersion()); conn.close(); } catch (Exception ex) { System.out.println("connect failure!"); ex.printStackTrace(); } } }
Kết quả:
Driver Name: MySQL-AB JDBC Driver Driver Version: mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} ) UserName: root@localhost Database Product Name: MySQL Database Product Version: 5.5.5-10.1.21-MariaDB
Ví dụ 2: in ra màn hình tên các bảng của database:
package vn.viettuts.jdbc; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; public class DatabaseMetaDataExample2 { private static String DB_URL = "jdbc:mysql://localhost:3306/testdb"; private static String USER_NAME = "root"; private static String PASSWORD = "1234567890"; public static void main(String[] args) { try { // connect to database Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(DB_URL, USER_NAME, PASSWORD); // get DatabaseMetaData object DatabaseMetaData dbmd = conn.getMetaData(); // show list table database String table[] = { "TABLE" }; ResultSet rs = dbmd.getTables(null, null, null, table); while (rs.next()) { System.out.println(rs.getString(3)); } conn.close(); } catch (Exception ex) { System.out.println("connect failure!"); ex.printStackTrace(); } } }
Kết quả:
sessions student
Tham khảo API của DatabaseMetaData interface tại Interface DatabaseMetaData