jdbc獲取資料表表結構
做製作開發平臺時,首要的一點是如何取得資料庫表結構資訊。一般通用的做法就是通過JDBC中的ResultSetMetaData類來進行操作,當你取得了資料庫表結構資訊後,比如說表的每個欄位名稱,欄位型別等。
首先取得資料庫連線後取得DatabaseMetaData。
DatabaseMetaData dbmd = con.getMetaData();
con是一個數據庫連線,直接通過連線資訊取得。
然後我們就可以取當前資料庫中的所有表:
ArrayList v = new ArrayList();
ResultSet rs = null;
String[] typeList = new String[] { "TABLE" };
rs = dbmd.getTables(catalog, schema, null, typeList);
for (boolean more = rs.next(); more; more = rs.next()) {
String s = rs.getString("TABLE_NAME");
String type = rs.getString("TABLE_TYPE");
if (type.equalsIgnoreCase("table") && s.indexOf("$") == -1)
v.add(s);
}
其中的rs.getString("TABLE_NAME");方法就是取得表名。
取得表名我們在執行select * from tablename 的方法,取得結果集:
String sql = "select * from "+tableName;
Statement state = con.createStatement();
ResultSet rs = state.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData() ;
for(int i = 1; i <= rsmd.getColumnCount(); i++)
{
String colname = rsmd.getColumnName(i);
String typeName = rsmd.getColumnTypeName(i);
int itype = rsmd.getColumnType(i);
int size = rsmd.getColumnDisplaySize(i);
int precision=rsmd.getPrecision(i);
int n = rsmd.isNullable(i);
int scale=rsmd.getScale(i);
boolean nullable = true;
switch (n) {
case 0: // '/0'
nullable = false;
break;
case 1: // '/001'
nullable = true;
break;
default:
nullable = true;
break;
}
SQLColumn col = new SQLColumn(colname);
SQLType type = simpleType(typeName, itype);
if (type.allowsParameters())
type.setParameterString("" + size);
col.setType(type);
col.setIType(itype);
col.setSize(size);
col.setScale(scale);
col.setPrecision(precision);
col.setNullable(nullable);
col.setReadOnly(rsmd.isReadOnly(i));
col.setAutoIncrement(rsmd.isAutoIncrement(i));
col.setSearchable(rsmd.isSearchable(i));
col.setCurrency(rsmd.isCurrency(i));
col.setCaseSensitive(rsmd.isCaseSensitive(i));
col.setSigned(rsmd.isSigned(i));
col.setClassType(rsmd.getColumnClassName(i));
col.setDisName(rsmd.getColumnLabel(i));
if ( col.getDisName().length() > 0 )
col.setName(col.getDisName()) ;
columns.add(col);
}
以上操作
相關推薦
jdbc獲取資料表表結構
做製作開發平臺時,首要的一點是如何取得資料庫表結構資訊。一般通用的做法就是通過JDBC中的ResultSetMetaData類來進行操作,當你取得了資料庫表結構資訊後,比如說表的每個欄位名稱,欄位型別等。 首先取得資料庫連線後取得DatabaseMetaData。 Da
JDBC檢視資料表結構
在JDBC連線Oracle資料庫成功之後,怎麼取得資料庫配置資訊及資料庫表和欄位的相關資訊?本文做一簡單介紹。 以下是連線資料庫的例子 ConnectionDB cdb = new ConnectionDB();//新建資料庫連線物件
Mysql命令desc:獲取資料表結構
使用MySQL資料庫desc 表名時,我們看到Key那一欄,可能會有4種值,即 ' ','PRI','UNI','MUL'。 如果Key是空的,那麼該列值的可以重複,表示該列沒有索引,或者是一個非唯一的複合索引的非前導列;如果Key是PRI,那麼該列是主鍵的組成部分;如果K
教師結構化面試,一鍵獲取資料
教師結構化面試,一個程式設計師男朋友,為愛而碼 【需求】 1、教 結構化面試資料太少,而且最好列印 2、資料儲存word檔案,方便共享 作為一名程式設計師,開始coding... 把如下程式碼儲存為download.py,雙擊執行,結果如下:
用python批量獲取某路徑資料夾及子資料夾下的指定型別檔案,並按原資料夾結構批量儲存處理後的檔案
因為是把自己成功執行的整個程式碼按幾部分截取出來的,所以每一小節程式碼不一定能單獨執行,特此說明。 1.獲取某路徑資料夾及子資料夾下的指定pcm型別檔案的全部路徑 import os def eachfile(filepath): pathdi
Jmeter-JDBC獲取資料庫資料並作為變數傳輸
版權宣告:本文為博主原創文章,未經博主允許不得轉載。https://blog.csdn.net/kangi/article/details/81670796 一、新增資料庫對應引入的jar包: oracle:oracle資料安裝目錄下\product\12.1.0\clie
使用JDBC獲取資料庫資料,並生成json格式檔案(省市區三級聯動)
前言: 轉眼已經2018年了, 17年有點忙,出差將近三個月,部落格也停更了好久。 一直都是不停的修復bug,和做一些業務需要的提示和互動。主要是因為和硬體有關係所以比較麻煩,開發週期也很長,而且還不穩定,硬體先行,然後在是除錯,互動。不過也有好處,學到的東西自然不是簡簡單單的 程式碼了。
Java遞迴獲取zTree標準結構資料優化
資料結構: var nodes = [ {name: "父節點1", children: [ {name: "子節點1"}, {name: "子節點2"} ]} ]; // 獲取標準JSON資料 public st
oracle中比較兩表表結構差異和資料差異的方法
在工作中經常會遇到導資料的情況,有時候需要比較生產庫和測試庫的表結構是否有變化,找出差異,並且可以找出差異資料。 分析:手工方式不可取,因為要比較的表結構比較多,不容易看出來,採取兩表差集並集的方式查詢。 MINUS(差集): SQL中有一個MINUS關鍵字,它運用在兩個S
是用JDBC從資料庫中獲取資料並以java物件返回
/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys為主鍵,引數順序和表中保持一致 如果id, name
java通過JDBC獲取MySQL的資料實現
由慕課網聽之,後簡單的捋了一下,記下來,備後用 要從eclipse中的java程式碼獲取到MySQL資料庫中的資訊,Java提供了JDBC作為橋樑來實現 首先需要在我們的專案中匯入JDBC相關的包 下載:mysql-connector-java-5.0.8-bin.ja
自動生成資料庫表設計(一)之獲取JDBC獲取元資料
最近專案快了驗收,那麼接下來就是寫一些比較煩人的文件,在寫資料庫設計文件時,到了詳細設計這一塊有點尷尬了,每張表,沒個欄位都要寫上去,由於前期沒有整理,所以這個工作量還是很大,我查看了我們的資料庫發現有353張表,這樣寫,得花多久的時間啊。。。於是想通過程
jmeter使用jdbc獲取註冊驗證碼進行註冊
driver datebase cnblogs ora 實例 lib table 不同數據庫 分享 自動化工具測試註冊功能時,往往會遇到驗證碼,這個煩人的驗證碼怎麽能夠解決掉呢? 通常有兩種方法 讓開發禁用註冊碼,或在測試環境寫個固定的
jdbc獲取數據具體過程
elong pre 我認 二進制流 ace 字節 常量 有趣 prot 下面是個最簡單的使用jdbc取得數據的應用。在例子之後我將分成4步,分別是①取得連接,②創建PreparedStatement,③設置參數,④執行查詢,來分步分析這個過程。除了設置參數那一步之外,其他的
數據庫字段為null時jdbc獲取的值
ref obj valid 答案 min test float thead 是否 當數據庫字段的值為NULL時,我們使用jdbc獲取到的值為什麽呢?對於varchar、char等類型當使用getString時,根據常識輕松地知道值應該是NULL。但是,對於int、float
遍歷獲取Teamcenter中結構管理器的所有BOMLine
getch ntb lis row title asc mce for .get 直接上代碼: 1 public void collectAllBomLine(TCComponentBOMLine topBomLine) throws TCException{ 2
El表示式獲取資料
<h1>獲取常量</h1> ${"奧運會"}${2008 } ${true} <h1>獲取域中的變數</h1> <% String na
JS語句將後臺獲取資料在頁面展示方法原始碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" />
JDBC插入資料後返回新資料id
使用jdbc向表中插入資料時,有時候需要返回新插入資料的id。比如現在要向兩個表中分別插入一條資料,第一條資料插入後生成的id要作為第二條資料的一個欄位值。 具體程式碼: PreparedStatement pstmt = null; ResultSet rs =
資料倉庫入倉問題:mysql獲取資料存在"UTF8": 0x00問題的轉換
1、 invalid byte sequence for encoding “UTF8”: 0x00 要使用如下方案轉換欄位 replace(ifnull(first_name,null),char(‘0x00’),null) as first_name, 2、寫入到csv時,無法寫入完全的