Java JDBC - DatabaseMetaData trong java
DatabaseMetaData trong java
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, ...
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