Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

DatabaseMetaData trong JDBC là gì? Ý nghĩa của nó?


Dữ liệu về dữ liệu được gọi là metadata. Interface DatabaseMetaData cung cấp các phương thức để lấy thông tin về database bạn đã kết nối như: tên database, phiên bản driver, độ dài cột tối đa, v.v.

Dưới đây là một số phương thức của lớp DatabaseMetaData:

Phương thức Mô tả
getDriverName()Lấy tên driver JDBC hiện tại
getDriverVersion()Lấy phiên bản driver JDBC hiện tại
getUserName()Lấy tên người dùng
getDatabaseProductName()Lấy tên database hiện tại
getDatabaseProductVersion()Lấy phiên bản database hiện tại
getNumericFunctions()Lấy danh sách hàm số học khả dụng
getStringFunctions()Lấy danh sách hàm chuỗi khả dụng
getSystemFunctions()Lấy danh sách hàm hệ thống khả dụng
getTimeDateFunctions()Lấy danh sách hàm thời gian/ngày khả dụng
getURL()Lấy URL database hiện tại
supportsSavepoints()Kiểm tra database có hỗ trợ savepoint không
supportsStoredProcedures()Kiểm tra database có hỗ trợ stored procedure không
supportsTransactions()Kiểm tra database có hỗ trợ transaction không

Ví dụ

Ví dụ sau minh họa 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 { 
        // Lấy kết nối 
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Kết nối thành công......"); 
        // Tạo đối tượng DatabaseMetaData 
        DatabaseMetaData dbMetadata = con.getMetaData(); 
        // Gọi phương thức supportsBatchUpdates() 
        boolean bool = dbMetadata.supportsBatchUpdates(); 
        if(bool) { 
            System.out.println("Database hỗ trợ batch updates"); 
        } else { 
            System.out.println("Database không hỗ trợ batch updates"); 
        } 
        // Lấy tên driver 
        System.out.println(dbMetadata.getDriverName()); 
        // Lấy phiên bản driver 
        System.out.println(dbMetadata.getDriverVersion()); 
        // Lấy tên người dùng 
        System.out.println(dbMetadata.getUserName()); 
        // Lấy URL 
        System.out.println(dbMetadata.getURL()); 
        // Lấy danh sách hàm số học 
        System.out.println("Numeric functions: " + dbMetadata.getNumericFunctions()); 
        System.out.println(""); 
        // Lấy danh sách hàm chuỗi 
        System.out.println("String functions: " + dbMetadata.getStringFunctions()); 
        System.out.println(""); 
        // Lấy danh sách hàm hệ thống 
        System.out.println("System functions: " + dbMetadata.getSystemFunctions()); 
        System.out.println(""); 
        // Lấy danh sách hàm thời gian/ngày 
        System.out.println("Time and Date functions: " + dbMetadata.getTimeDateFunctions()); 
    } 
}

Kết quả

Kết nối thành công...... 
Database hỗ trợ 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,EXPORT_SET,FIELD,FIND_IN_SET,HEX,INSERT,INSTR,LCASE,LEFT,LENGTH,LOAD_FILE,LOCATE,LOCATE,LOWER,LPAD,LTRIM,MAKE_SET,MATCH,MID,OCT,OCTET_LENGTH,ORD,POSITION,QUOTE,REPEAT,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SOUNDEX,SPACE,STRCMP,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER 
System functions: DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID,VERSION 
Time and Date functions: DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,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_TIMESTAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC