JDBC 獲取表中列資訊

2021-06-26 05:04:23 字數 1812 閱讀 4922

【開始】

現在有這麼個需求,

1.知道乙個表名

2.通過表名獲取表中所有的列

3.知道列的一些資訊

4.包括列名,是否可空,是否唯一,是否主鍵,資料型別,注釋

【方法】

主要使用兩個方法:

resultset colrs = con.getmetadata().getcolumns(null, "%", tablename, "%");

resultset rs = con.getmetadata().getindexinfo("db_com", null, "t_ucenter_menu", true, false);

其中,第乙個方法可以獲取列的大部分資訊,

第二個方法可以獲取列是否唯一,因為是否唯一已經不是列的資訊,而是一種約束

【**1】

resultset colrs = con.getmetadata().getcolumns(null, "%", tablename, "%");

while(colrs.next())

【結果1】

table_cat===db_com

table_schem===null

table_name===t_ucenter_menu

column_name===id

data_type===4

type_name===int

column_size===10

buffer_length===65535

decimal_digits===0

num_prec_radix===10

nullable===0

remarks===

column_def===null

sql_data_type===0

sql_datetime_sub===0

char_octet_length===null

ordinal_position===1

is_nullable===no

scope_catalog===null

scope_schema===null

scope_table===null

source_data_type===null

is_autoincrement===yes

【**2】

resultset rs = con.getmetadata().getindexinfo("db_com", null, "t_ucenter_menu", true, false);

while(rs.next())

【結果2】

table_cat===db_com

table_schem===null

table_name===t_ucenter_menu

non_unique===false

index_qualifier===

index_name===primary

type===3

ordinal_position===1

column_name===id

asc_or_desc===a

cardinality===4

pages===0

filter_condition===null

【整理】

自己整理以上有用的內容吧

【api】

JDBC中獲取資料表的資訊

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

JDBC中獲取資料表的資訊

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

使用JDBC函式獲取表結構資訊

使用 getmetadata 方法獲取我們所需要的有關資料庫 表或者欄位的資訊。例如 resultset rs null 建立連線 connection conn congener.getconn 獲取資訊 該物件包含關於 connection 物件連線到的資料庫的元資料。元資料報括關於資料庫的表 ...