November 27,2008
如何取得ResultSet裡的ColumnName
ResultSet是SQL查詢後的結果, 但ResultSet所有的方法都沒有辦法"直接"取得ColumnName(欄位名稱)
所以必須繞道而行, 建立一個ResultSetMetaData
MetaDate是中介資料, SQL的SELECT查詢出來的結果都是取出欄位裡的值(ColumnValues)
所以必須繞道而行, 建立一個ResultSetMetaData
MetaDate是中介資料, SQL的SELECT查詢出來的結果都是取出欄位裡的值(ColumnValues)
假設在SQL有一個表格(Table), 名叫"test_table001"
裡面有兩筆資料,
對它下了一個SELECT查詢,
SELECT * FROM test_table001;
回傳了一個ResultSet類型的資料
用ResultSet像是getString()或是getInt()等等的方法
就可以得到表格內的資料,
但是要取得像是id, message, date這些欄位名稱(ColumnName)時
ResultSet就沒有適當的方法可以使用了
這時就要先建立一個MetaData來取得, 也就是ResultSetMetaData
假設ResultSet為rs
建立方法為:
ResultSetMetaData rsmd = rs.getMetaData();
取得了MetaData之後, 就可以使用它的各類方法來取得中介資料了
像是要取得Table test_table001裡面的Hello! World!的欄位名稱
就可以使用 getColumnName方法: 此例會回傳字串 "message"
如果不曉得有多少個欄位, 就使用getColumnCount方法: 此例會回傳整數 3
想取得該欄位的型別, 就使用getColumnTypeName方法: 此例會回傳字串 "varchar"
想取得表格本身的名稱, 就使用getTableName方法: 此例會回傳字串 "test_table001"
其實這些資訊在Java API裡也有~@w@
裡面有兩筆資料,
table name: test_table001
| id | message | date |
| 1 | Hello! World! | 2008-11-19 |
| 2 | Hello! Java! | 2008-11-27 |
對它下了一個SELECT查詢,
SELECT * FROM test_table001;
回傳了一個ResultSet類型的資料
用ResultSet像是getString()或是getInt()等等的方法
就可以得到表格內的資料,
但是要取得像是id, message, date這些欄位名稱(ColumnName)時
ResultSet就沒有適當的方法可以使用了
這時就要先建立一個MetaData來取得, 也就是ResultSetMetaData
假設ResultSet為rs
建立方法為:
ResultSetMetaData rsmd = rs.getMetaData();
取得了MetaData之後, 就可以使用它的各類方法來取得中介資料了
| 回傳型別 方法名稱(參數型別) | 方法說明 |
| int getColumnCount() | 取得 ResultSet 類別物件中的欄位個數 |
| int getColumnDisplaySize(int column) | 取得 ResultSet 類別物件中的欄位長度 |
| String getColumnName(int column) | 取得 ResultSet 類別物件中的欄位名稱 |
| String getColumnTypeName(int column) | 取得 ResultSet 類別物件中的欄位型態名稱 |
| String getTableName(int column) | 取得 ResultSet 類別物件中的欄位所屬 Table 的名稱 |
| boolean isCaseSensitive(int column) | 測試 ResultSet 類別物件中的欄位是否區分大小寫 |
| boolean isReadOnly(int column) | 測試 ResultSet 類別物件中的欄位是否為唯讀 |
像是要取得Table test_table001裡面的Hello! World!的欄位名稱
就可以使用 getColumnName方法: 此例會回傳字串 "message"
如果不曉得有多少個欄位, 就使用getColumnCount方法: 此例會回傳整數 3
想取得該欄位的型別, 就使用getColumnTypeName方法: 此例會回傳字串 "varchar"
想取得表格本身的名稱, 就使用getTableName方法: 此例會回傳字串 "test_table001"
其實這些資訊在Java API裡也有~@w@
引用URL
http://cgi.blog.roodo.com/trackback/7721123