通常,有關(guān)數(shù)據(jù)的數(shù)據(jù)稱為元數(shù)據(jù)。 DatabaseMetaData 接口提供了一些方法來獲取有關(guān)您所連接的數(shù)據(jù)庫的信息,例如數(shù)據(jù)庫名稱、數(shù)據(jù)庫驅(qū)動(dòng)程序版本、最大列長度等…
以下是一些方法DatabaseMetaData 類。
| 方法 | |
|---|---|
| getDriverName() | 檢索當(dāng)前 JDBC 驅(qū)動(dòng)程序的名稱 |
| getDriverVersion() | 檢索當(dāng)前 JDBC 驅(qū)動(dòng)程序的版本 td> |
| getUserName() | 檢索用戶名。 |
| getDatabaseProductName() | 檢索當(dāng)前數(shù)據(jù)庫的名稱。 |
| getDatabaseProductVersion() | 檢索當(dāng)前數(shù)據(jù)庫的版本。 |
| getNumericFunctions() | 檢索數(shù)字函數(shù)列表此數(shù)據(jù)庫可用。 |
| getStringFunctions() | 檢索此數(shù)據(jù)庫可用的數(shù)值函數(shù)列表。 td> |
| getSystemFunctions() | 檢索此數(shù)據(jù)庫可用的系統(tǒng)函數(shù)列表。 | getTimeDateFunctions() | 檢索此數(shù)據(jù)庫可用的時(shí)間和日期函數(shù)列表。 |
| getURL() | 檢索當(dāng)前數(shù)據(jù)庫的 URL。 |
| supportsSavepoints() | 驗(yàn)證當(dāng)前數(shù)據(jù)庫是否支持保存點(diǎn) |
| supportsStoredProcedures() | 驗(yàn)證當(dāng)前數(shù)據(jù)庫的天氣支持存儲(chǔ)過程。 |
| supportsTransactions() | 驗(yàn)證當(dāng)前數(shù)據(jù)庫是否支持事務(wù)。 |
示例
以下示例演示 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());
}
}
登錄后復(fù)制
輸出
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
登錄后復(fù)制
以上就是JDBC中的DatabaseMetaData是什么?其意義何在?的詳細(xì)內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!






