亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

JDBC4 簡介

系統 2386 0

轉載請注明出處: http://www.blogjava.net/nake/
???自從
? java ? 發布的第一個版本開始就已經包含 ? JDBC ? 了。目前已經有 ? 10 ? 個年頭了。 ? JDBC4.0 將要被打包到 ? java6.0 ? 里( ? java SE? ? J2SE ? 新的名字)。它展現設計的重大提升和提供更加豐富的 ? API ? ,更加重視簡易開發和提高生產力 ?

??????? 本文將討論一些 ? JDBC ? 在改善設計和提高性能上的重要的變化。但是不能列舉每一個變化。

注解和泛型

我想你已經了解了包含在 ? JAVA 5.0? 的注解( ? annotations ? ? 和泛型( ? generic? 也有翻譯范型)。 ? JDBC4.0 ? 也引進了注解和泛型 ? DataSet ? ,這使得執行 ? sql ? 語句和 ? SQL ?? DML ? ? data manipulation ?? language ? ? 定義變的簡單。

??????? 在新的 ? API ? 里定義了一套 ? Query ? ? DataSet ? 接口。 ? Query ? 接口定義了一套方法,這些方法描述了 ? SQL ? ? select? ? update ? 語句。而且詳細介紹了結果集如何綁定為一個 ? DataSet ? 的。因為泛型所以 ? DataSet ? 是可以帶參數的。因此可以說 ? DataSet ? 接口是類型安全的( ? type-saft ? .

所有 ? Query ? 接口都要從 ? BaseQuery ? 接口繼承。可以通過 ? Connection.createQueryObject() ? 或者 ? DataSource.createQueryObject() ? 得到 Query 對象。

一個 DataSet 接口都繼承 java.util.List ? ?? DataSet ? 是有列概念的數據集,能從 ? Query ? 接口得到,并且可以帶有參數。 ? DataSet ? 可以在連接和斷開連接的情況下使用。從而 ? DataSet 實現了 ? ResultSet ? (連接) ? 或者 ? ?? CachedRowSet ? (可以斷開連接)。因為 DataSet java.util.List 的子接口,所以可以通過 java.util.Iterator 來訪問每一行。

DataSet ? 接口可以帶系統或者用戶自己定義的類作為參數。通過兩種方法你可以實現:構造函數或者 ? JavaBeans? 對象,任何一個辦法都能達到將用戶自定義的類綁定到結果集的列里。但是在其它支持 ? JavaBeans ? 的框架里,用 ? JavaBeans? 對象的實現就顯更加容易使用。

下面簡單舉例說明如何通過新的 ? API ? 創建和運行 ? SQL? 查詢。用用戶自定義的類來定義結果集。(拷貝時候小心有制表符)

pubic class Employee { ?
?? private int employeeId; ?
?? private String firstName; ?
?? private String lastName; ?

?? public int getEmployeeId() { ?
??????return employeeId; ?
?? } ?
???
?? public setEmployeeId(int employeeId) { ?
??????this.employeeId = employeeId; ?
?? } ?

?? public String getFirstName() { ?
??????return firstName; ?
?? } ?

?? public setFirstName(String firstName) { ?
??????this.firstName = firstName; ?
?? } ?

?? pubic String lastName() { ?
??????return lastName; ?
?? } ?

?? public setLastName(String lastName) { ?
??????this.lastName = lastName; ?
?? } ?
}

interface EmployeeQueries extends BaseQuery { ?
?? @Select (sql="SELECT employeeId, firstName, lastName FROM employee") ?
?? DataSet<Employee> getAllEmployees (); ?

?? @Update (sql="delete from employee") ?
?? int deleteAllEmployees (); ?
} ?


Connection con = ... ?

EmployeeQueries empQueries = con.createQueryObject (EmployeeQueries.class); ?

DataSet<Employee> empData = empQueries.getAllEmployees ();

?

異常處理的增強:

1. ??????? ? SQLException ? 分為兩類? transient? ? non-transient ?

2. ??????? 支持連鎖的異常。

3. ??????? 繼承了 ? Iterable ? 接口。

因為繼承了 Iterable? 所以你可以這樣寫:

catch(SQLException ex) { ?
?? for(Throwable t : ex) { ?
??????System.out.println("exception:" + t); ?
?? } ?
}

?

?

最后,注:hibernate 3.5已經添加了對JDBC4的支持

JDBC4 簡介


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天操操操操 | 久久99精品国产99久久 | 欧美性久久久久 | 国产精品视频在线播放 | 欧美久在线观看在线观看 | 精品国产综合区久久久久久 | 国产婷婷高清在线观看免费 | 国产高清狼人香蕉在线观看 | 成人一区二区免费中文字幕 | 国产日本久久久久久久久婷婷 | 91在线视频播放 | 超乳w真性中出し冲田杏梨101 | 成人a一级毛片免费看 | 在线综合+亚洲+欧美中文字幕 | 夜夜操操操 | 亚洲视频1 | 欧美成人怡红院在线观看 | 成人网18免费网站 | 色淫综合 | 午夜在线精品不卡国产 | 玖玖草视频 | 亚洲视频免费在线 | 国产免费私人影院永久免费 | 嘿嘿嘿视频免费网站在线观看 | 亚洲成在人线中文字幕 | 精品四虎免费观看国产高清 | 国产成人精品高清不卡在线 | 毛片大全在线观看 | 国产精品毛片一区二区三区 | 日本中文字幕二区三区 | 久久精品加勒比中文字幕 | 麻豆久久婷婷综合五月国产 | 久久久精品免费国产四虎 | 国产精品青草久久久久婷婷 | 免费的拍拍视频在线观看 | 97国产在线视频 | 在线视频免费观看a毛片 | 国产在线日韩 | 国产精选一区二区 | 成在线人免费视频一区二区三区 | 青青久视频|