Nói chung, Dữ liệu về dữ liệu được gọi là siêu dữ liệu. DatabaseMetaData giao diện cung cấp các phương thức để lấy thông tin về cơ sở dữ liệu bạn đã kết nối như, tên cơ sở dữ liệu, phiên bản trình điều khiển cơ sở dữ liệu, độ dài cột tối đa, v.v.
Sau đây là một số phương pháp của DatabaseMetaData lớp học.
| Phương pháp | Mô tả |
|---|---|
| getDriverName () | Lấy tên của trình điều khiển JDBC hiện tại |
| getDriverVersion () | Truy xuất phiên bản của trình điều khiển JDBC hiện tại |
| getUserName () | Lấy tên người dùng. |
| getDatabaseProductName () | Lấy tên của cơ sở dữ liệu hiện tại. |
| getDatabaseProductVersion () | Truy xuất phiên bản của cơ sở dữ liệu hiện tại. |
| getNumericFunctions () | Truy xuất danh sách các hàm số có sẵn trong cơ sở dữ liệu này. |
| getStringFunctions () | Truy xuất danh sách các hàm số có sẵn trong cơ sở dữ liệu này. |
| getSystemFunctions () | Truy xuất danh sách các chức năng hệ thống có sẵn với cơ sở dữ liệu này. |
| getTimeDateFunctions () | Truy xuất danh sách các chức năng ngày và giờ có sẵn với cơ sở dữ liệu này. |
| getURL () | Truy xuất URL cho cơ sở dữ liệu hiện tại. |
| supportsSavepoints () | Xác minh thời tiết mà cơ sở dữ liệu hiện tại hỗ trợ lưu điểm |
| supportsStoredProcedures () | Xác minh thời tiết, cơ sở dữ liệu hiện tại có hỗ trợ các quy trình được lưu trữ hay không. |
| supportsTransactions () | Xác minh thời tiết mà cơ sở dữ liệu hiện tại hỗ trợ các giao dịch. |
Ví dụ
Ví dụ sau minh họa việc sử dụng lớp DatabaseMetaData.
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
public class DatabaseMetadataExample {
public static void main(String args[])throws Exception {
//Getting the connection
String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Creating the DatabaseMetaData object
DatabaseMetaData dbMetadata = con.getMetaData();
//invoke the supportsBatchUpdates() method.
boolean bool = dbMetadata.supportsBatchUpdates();
if(bool) {
System.out.println("Underlying database supports batch updates");
} else {
System.out.println("Underlying database doesnt supports batch updates");
}
//Retrieving the driver name
System.out.println(dbMetadata.getDriverName());
//Retrieving the driver version
System.out.println(dbMetadata.getDriverVersion());
//Retrieving the user name
System.out.println(dbMetadata.getUserName());
//Retrieving the URL
System.out.println(dbMetadata.getURL());
//Retrieving the list of numeric functions
System.out.println("Numeric functions: "+dbMetadata.getNumericFunctions());
System.out.println("");
//Retrieving the list of String functions
System.out.println("String functions: "+dbMetadata.getStringFunctions());
System.out.println("");
//Retrieving the list of system functions
System.out.println("System functions: "+dbMetadata.getSystemFunctions());
System.out.println("");
//Retrieving the list of time and date functions
System.out.println("Time and Date funtions: "+dbMetadata.getTimeDateFunctions());
}
} Đầu ra
Connection established......
Underlying database supports batch updates
MySQL-AB JDBC Driver
mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )
root@localhost
jdbc:mysql://localhost/sampleDB
Numeric functions:
ABS,ACOS,ASIN,ATAN,ATAN2,BIT_COUNT,CEILING,COS,COT,DEGREES,EXP,FLOOR,LOG,LOG10,MAX
,MIN,MOD,PI,POW,POWER,RADIANS,RAND,ROUND,SIN,SQRT,TAN,TRUNCATE
String functions:
ASCII,BIN,BIT_LENGTH,CHAR,CHARACTER_LENGTH,CHAR_LENGTH,CONCAT,CONCAT_WS,CONV,ELT,E
XPORT_SET,FIELD,FIND_IN_SET,HEX,INSERT,INSTR,LCASE,LEFT,LENGTH,LOAD_FILE,LOCATE,LO
CATE,LOWER,LPAD,LTRIM,MAKE_SET,MATCH,MID,OCT,OCTET_LENGTH,ORD,POSITION,QUOTE,REPEA
T,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SOUNDEX,SPACE,STRCMP,SUBSTRING,SUBSTRING,SUBSTR
ING,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER
System functions:
DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID,VERSION
Time and Date funtions:
DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,H
OUR,MINUTE,SECOND,PERIOD_ADD,PERIOD_DIFF,TO_DAYS,FROM_DAYS,DATE_FORMAT,TIME_FORMAT
,CURDATE,CURRENT_DATE,CURTIME,CURRENT_TIME,NOW,SYSDATE,CURRENT_TIMESTAMP,UNIX_TIME
STAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC