日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

JDBC(九)DatabaseMetaData 数据库元数据

發(fā)布時(shí)間:2023/12/10 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDBC(九)DatabaseMetaData 数据库元数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通過(guò)java.sql.DatabaseMetaData 接口,我們能獲取到數(shù)據(jù)庫(kù)的列表、列等信息。

DatabaseMetaData 接口包含了許多方法,這里值介紹常用的。

###獲取 DatabaseMetaData 實(shí)例對(duì)象

DatabaseMetaData databaseMetaData = connection.getMetaData(); 復(fù)制代碼

###獲取數(shù)據(jù)庫(kù)名和版本

int majorVersion = databaseMetaData.getDatabaseMajorVersion(); int minorVersion = databaseMetaData.getDatabaseMinorVersion();String productName = databaseMetaData.getDatabaseProductName(); String productVersion = databaseMetaData.getDatabaseProductVersion(); 復(fù)制代碼數(shù)據(jù)庫(kù)屬性信息:5 6 MySQL 5.6.24 復(fù)制代碼

###獲取數(shù)據(jù)庫(kù)驅(qū)動(dòng)版本

int driverMajorVersion = databaseMetaData.getDriverMajorVersion(); int driverMinorVersion = databaseMetaData.getDriverMinorVersion(); 復(fù)制代碼

###獲取數(shù)據(jù)庫(kù)列表

String catalog = null; String schemaPattern = null; String tableNamePattern = null; String[] types = null;ResultSet result = databaseMetaData.getTables(catalog, schemaPattern, tableNamePattern, types );while(result.next()) {String tableName = result.getString(3); } 復(fù)制代碼

getTables()方法源碼:

ResultSet getTables(String catalog, String schemaPattern,String tableNamePattern, String types[]) throws SQLException; 復(fù)制代碼

我在這里給四個(gè)參數(shù)都賦值null,則它會(huì)把所有數(shù)據(jù)庫(kù)中的表信息 返回。

此ResultSet包含10列,每列包含有關(guān)給定表的信息。 索引3指的是表名稱。

user 復(fù)制代碼

###在表中列出列

String catalog = null; String schemaPattern = null; String tableNamePattern = "user"; String columnNamePattern = null;ResultSet result = databaseMetaData.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);while(result.next()){String columnName = result.getString(4);int columnType = result.getInt(5); } 復(fù)制代碼

getColumns()方法返回的ResultSet包含給定表的列的列表。 索引為4的列包含列名稱,索引為5的列包含列類型。 列類型是一個(gè)與java.sql.Types中的類型常量匹配的整數(shù)。

id 4 username 12 birthday 91 sex 1 address 12 復(fù)制代碼

###表的主鍵

String catalog = null; String schema = null; String tableName = "user";ResultSet result = databaseMetaData.getPrimaryKeys(catalog, schema, tableName);while(result.next()){String columnName = result.getString(4); } 復(fù)制代碼

調(diào)用getPrimaryKeys()方法,向其傳遞3個(gè)參數(shù)。 在這個(gè)例子中,只有tableName是非空的。

getPrimaryKeys()方法返回的ResultSet包含組成給定表主鍵的列表。 索引4指的是的列名稱。

主鍵可以由多個(gè)列組成。 這樣的密鑰被稱為復(fù)合密鑰。 如果表包含復(fù)合鍵,則ResultSet將包含多行。 復(fù)合鍵中的每一列都有一行。

id 復(fù)制代碼

###全部代碼

package com.jdbc;import java.sql.*;/*** Created by Fant.J.* 2018/3/5 21:38*/ public class DatabaseMetaDataTest {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/user";String user = "root";String password = "root";Connection connection =null;try {Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection(url,user,password);DatabaseMetaData databaseMetaData = connection.getMetaData();int majorVersion = databaseMetaData.getDatabaseMajorVersion();int minorVersion = databaseMetaData.getDatabaseMinorVersion();String productName = databaseMetaData.getDatabaseProductName();String productVersion = databaseMetaData.getDatabaseProductVersion();System.out.println("數(shù)據(jù)庫(kù)屬性信息:"+majorVersion+" "+minorVersion+" "+productName+" "+productVersion);int driverMajorVersion = databaseMetaData.getDriverMajorVersion();int driverMinorVersion = databaseMetaData.getDriverMinorVersion();System.out.println("驅(qū)動(dòng)信息:"+driverMajorVersion+" "+driverMinorVersion);/* String catalog = null;String schemaPattern = null;String tableNamePattern = null;String[] types = null;ResultSet result = databaseMetaData.getTables(catalog, schemaPattern, tableNamePattern, types );while(result.next()) {String tableName = result.getString(3);System.out.println(tableName);}*//* String catalog = null;String schemaPattern = null;String tableNamePattern = "user";String columnNamePattern = null;ResultSet result = databaseMetaData.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);while(result.next()){String columnName = result.getString(4);int columnType = result.getInt(5);System.out.println(columnName+" "+columnType+" ");}*/String catalog = null;String schema = null;String tableName = "user";ResultSet result = databaseMetaData.getPrimaryKeys(catalog, schema, tableName);while(result.next()){String columnName = result.getString(4);System.out.println(columnName);}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}} }復(fù)制代碼

總結(jié)

以上是生活随笔為你收集整理的JDBC(九)DatabaseMetaData 数据库元数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。