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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iBatis应用之获取表的元数据

發布時間:2025/7/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iBatis应用之获取表的元数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

iBatis是一種半ORM,為程序員提供了較大的靈活性,今天就展示一在iBatis中獲取表元數據的例子, 所謂表的元數據就就是關于表的數據的數據,在一個特殊的應用場合需要查出了指定SQL中包含的字段的信息, 包括:字段類型和長度定義, 我這里的sqlMapClient是由Spring注入的。
public void ShowFieldType(String sql) throws Exception{ DataSource dataSource = this.sqlMapClient.getDataSource(); Connection con = dataSource.getConnection(); Statement stmt = null; ResultSet rs = null; try { stmt = con.createStatement(); rs = stmt.executeQuery(sql); ResultSetMetaData rsMetaData = rs.getMetaData(); int columnCount = rsMetaData.getColumnCount(); for (int i = 1; i <= columnCount; i++) { logger.info("field Name:"+ rsMetaData.getColumnName(i)+ ? ?" field Type:"+rsMetaData.getColumnTypeName(i)+ " size:"+rsMetaData.getColumnDisplaySize(i)); } } catch (SQLException e) { e.printStackTrace(); } finally { rs.close(); stmt.close(); con.close(); } } 測試類: ITestDBDao dao = (ITestDBDao)SystemBeans.getBean("testdbDaoDean"); //給定一個SQL,為了提高效率不查數據,因此使用了一個where 1=2條件 dao.ShowFieldType("select * from ices_cc_data where 1=2");
運行結果: INFO [main] [2011-09-04 15:57:18] field Name:ID field Type:INTEGER size:11 INFO [main] [2011-09-04 15:57:18] field Name:NE_NAME field Type:VARCHAR size:30 INFO [main] [2011-09-04 15:57:18] field Name:CYCLE field Type:BIGINT UNSIGNED size:20 INFO [main] [2011-09-04 15:57:18] field Name:CC_ID field Type:INTEGER size:11 INFO [main] [2011-09-04 15:57:18] field Name:CALL_PHASE field Type:INTEGER size:11 INFO [main] [2011-09-04 15:57:18] field Name:CC_TOTAL_VALUE field Type:INTEGER size:11 INFO [main] [2011-09-04 15:57:18] field Name:CC_VALUE field Type:INTEGER size:11
運行結果中列出了ices_cc_data表的所有字段名和字段長度 其實 SqlMapClient提供了getCurrentConnection()方法,但是測試發現,該方法返回的結果為null,這一點很奇怪, 所以只好返回DataSource()然后再獲取一個Connection()

轉載于:https://my.oschina.net/u/179641/blog/31830

總結

以上是生活随笔為你收集整理的iBatis应用之获取表的元数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。