Computer >> Máy Tính >  >> Lập trình >> MySQL

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

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