JDBC中獲取資料表的資訊

2021-04-02 23:34:21 字數 1421 閱讀 7163

jdbc中通過metadata來獲取具體的表的相關資訊。可以查詢資料庫中的有哪些表,表有哪些字段,欄位的屬性等等。metadata中通過一系列get***函式,將這些資訊存放到resultset裡面,然後返回給使用者。關於metadata的說明網上也有不少,這裡我只是從我自身學習的角度來記錄一下簡單使用jdbc以及獲取資料表相關資訊的方法。

首先,http://hometown.aol.com/kgb1001001/articles/jdbcmetadata/jdbc_metadata.htm 這裡有篇名字叫做《understanding jdbc metadata》的文章,講解得不錯。

下面就是我的jdbc下的獲取表資訊的**了。我是以mysql 5.0作為測試平台的。

class.forname("com.mysql.jdbc.driver").newinstance();

connection conn = drivermanager

.getconnection("jdbc:mysql://localhost/test?user=root&password=123456");

m_dbmetadata = m_connection.getmetadata();

resultset tableret = m_dbmetadata.gettables(null, "%",m_tablename,new string);

其中"%"就是表示*的意思,也就是任意所有的意思。其中m_tablename就是要獲取的資料表的名字,如果想獲取所有的表的名字,就可以使用"%"來作為引數了。

while(tableret.next) system.out.println(tableret.getstring("table_name"));

通過getstring("table_name"),就可以獲取表的名字了。

從這裡可以看出,前面通過gettables的介面的返回,jdbc是將其所有的結果,儲存在乙個類似table的記憶體結構中,而其中table_name這個名字的字段就是每個表的名字。

string columnname;

string columntype;

resultset colret = m_dbmetadata.getcolumns(null,"%", m_tablename,"%");

while(colret.next())

jdbc裡面通過getcolumns的介面,實現對字段的查詢。跟gettables一樣,"%"表示所有任意的(字段),而m_tablename就是資料表的名字。

getcolumns的返回也是將所有的字段放到乙個類似的記憶體中的表,而column_name就是欄位的名字,type_name就是資料型別,比如"int","int unsigned"等等,column_size返回整數,就是欄位的長度,比如定義的int(8)的字段,返回就是8,最後nullable,返回1就表示可以是null,而0就表示not null。

JDBC中獲取資料表的資訊

1.jdbc連線mysql的 很標準,很簡單。class.forname com.mysql.jdbc.driver newinstance connection conn drivermanager getconnection jdbc mysql localhost test?user root...

JDBC 獲取表中列資訊

開始 現在有這麼個需求,1.知道乙個表名 2.通過表名獲取表中所有的列 3.知道列的一些資訊 4.包括列名,是否可空,是否唯一,是否主鍵,資料型別,注釋 方法 主要使用兩個方法 resultset colrs con.getmetadata getcolumns null,tablename,res...

JDBC檢視資料表結構

在jdbc連線oracle資料庫成功之後,怎麼取得資料庫配置資訊及資料庫表和字段的相關資訊?本文做一簡單介紹。以下是連線資料庫的例子 connectiondb cdb new connectiondb 新建資料庫連線物件 databasemetadata meta cdb.createconnect...