亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

體驗 JDBC 2.0 規范的一些新東西

2019-11-18 12:38:41
字體:
來源:轉載
供稿:網友

  JDBC 2.0 API 包括兩個package:
  1. java.sql 為JDBC 2.0的核心包,其中包括了JDBC 1.0規范中規定的API和新的核心API,這個包包含于Java 2 Standard Edition中.
  2. javax.sql 為JDBC 2.0的標準擴展包,相對與JDBC 1.0而言是全新的,這個包包含于Java 2 EnterPRise Edition中.
  
  ★ 采用了新的方法連接數據庫 DataSource Interface
  JDBC 2.0 提供了新的接口DataSource用來實現數據庫連接,可以替代1.0中提供的DriverManager類。好處是:
  ☆ 增強了代碼的可移植性
  ☆ 方便了代碼的維護
  一個DataSource對象代表一個實際的數據源。這個數據源可以是從關系數據庫到表格形式的文件,完全依靠于它是怎樣實現的.一個數據源對象注冊到JNDI名字服務后,應用程序就可以從JNDI服務器上取得該對象,并使用之和數據源建立連接.
  數據源及如何裝入的信息(名字,地址,端口等等)以Properties的形式保存在DataSource對象中.這樣就增強了應用程序的可移植性,因為程序中不需要像使用DriverManager那樣給出硬性的驅動器名字(往往包含了特定廠商的名字). 這種做法還增強了代碼的可維護性,比如數據源移植到另一臺服務器上后, 所需要作的就是更新一下相關的property,使用數據源的代碼更不不必改動.
  系統治理員或者有相應權限的人實現DataSource對象. DataSource對象的實現需要設置對象的properties并把它注冊到JNDI名字服務器上, 這些活動可能會用特定工具來實現. 系統治理員用一個邏輯名字對應DataSource對象,這個名字可是是任意的. 在下面的例子中DataSource對象的名字是InventoryDB. 依照傳統習慣, DataSource對象的名字包含在jdbc下, 所以這個數據源對象的完整名字是:jdbc/InventoryDB.
  實現數據源對象后, 應用程序員就可以使用它來建立和數據源之間的連接了. 下面的代碼片斷演示了通過這種方式獲得連接. 上面兩行使用了JNDI API獲得DataSource對象,第三行代碼使用JDBC API獲得連接:
  Context ctx = new InitialContext();
  DataSource ds = (DataSource) ctx.lookup("jdbc/InventoryDB"):
  Connection conn = ds.getConnection("passWord","username");
  DataSource對象中獲得的的Connection對象和用DriverManager.getConnection方法獲得的對象是等同的. 由于DataSource方法的優點, 該方法成為獲得連接的推薦方法. 所有基于JDBC 2.0的驅動器應該會包含DataSource接口的實現以及javax.sql包.
  對普通程序員而言, DataSource對象方法只是一種選擇. 假如要使用連接緩沖池(Connection pooling)或者分布式交換, 則必須使用DataSource對象獲得連接.原因在下文中闡述.
  ★ Connection Pooling
  連接緩沖池是這樣工作的:當一個應用程序關閉一個連接時, 這個連接并不真正釋放而是被循環利用.因為建立連接是消耗較大的操作, 循環利用連接可以顯著的提高性能,因為可以減少新連接的建立.
  比如一個應用程序需要連接一個由名字是EmployeeDB的DataSource對象代表的數據源, 通過緩沖池獲得連接的代碼演示如下:
  Context ctx = new InitialContext();
  DataSource ds = (DataSource) ctx.lookup("jdbc/EmloyeeDB");
  Connection con = ds.getConnection("password","username");
  因為連接的數據源不同所以和上面的例子中的名字不一樣. DataSource.getConnction方法返回的連接是否被緩存完全依靠于該DataSource對象的實現方式. 假如它將用于支持連接緩沖的中間層服務器(Middle Tier Server), 則DataSource對象將自動返回將被緩存、循環利用的連接.
  基本上不需要改變任何代碼就可以獲得緩沖池連接. 唯一需要注重的就是(我們已經這樣做了:P),需要在finally塊中釋放連接,這應該是釋放所有連接的較好方法.這樣, 即使拋出了異常, 連接也會還給連接緩沖池:
  finally{
  if(con != null) con.close();
  }
  finally塊保證了連接的循環利用.
  ★ Distributed Transactions(分布式交換)
  獲得用于分布式交換的情形類似于獲得緩沖池連接. 差別仍然是DataSource對象的實現方式, 而不是獲得連接程序代碼的不同.
  假定DataSource類被實現為用于中間件的分布式交換設施,下面的代碼將獲得用于分布式交換的連接:
  Context ctx = new InitialContext();
  DataSource ds = (DataSource) ctx.lookup("jdbc/EmloyeeDB");
  Connection con = ds.getConnection("password","username");
  出于性能的考慮, 用于獲得分布式交換的連接的DataSource對象差不多總是會同時實現緩沖池連接.
  從程序員的角度來看, 獲得普通連接和獲得用于分布式交換的連接之間沒有區別. 唯一的不同是交換界限(什么時候開始,什么時候結束)由交換治理器在后臺處理. 應用程序不應該做任何妨礙交換治理器的事情. 所以程序不能直接調用commit或者rollback方法, 不能設置auto-commit模式.
  下面幾行代碼中con是可用于分布式交換的Connection對象, 演示了在con參與分布式交換是不能作的事情:
  con.commit();
  or
  con.rollback();
  or
  con.setAutoCommit(true);
  普通連接默認打開auto-commit模式. 用于分布式交換的連接對象默認關閉auto-commit模式. 應注重的是用于分布式交換的連接也可以用于非分布式交換模式, 交換邊界的限制僅在連接是分布式交換一部分是有效.
  實現支持連接緩沖池的DataSource對象,需要實現ConnectionPoolDataSource對象, 三層構架的中間件的連接緩沖模塊將會使用它. 同樣, 實現支持分布式交換的DataSource對象也需要實現XADataSource對象, 中間件的分布式交換構件會使用該對象.
  ConnectionPoolDataSource和XADataSource對象對程序員而言是完全透明的, 應有驅動程序廠商提供.
  ★ Rowsets
  RowSet對象是一系列rows的容器. 根據不通的目的,可以通過多種方式實現. RowSet接口和其相關接口與JDBC 2.0標準擴展的其他部分的差別是它們不是驅動程序實現的一部分. RowSet對象在驅動程序的上層實現,可以被任何人實現.
  任何rowset類型都要實現RowSet接口(繼續了ResultSet接口). 所以RowSet對象擁有ResultSet對象的所有功能:可以用getXXX方法取值,用updateXXX方法更新, 移動游標, 執行其他相關任務.
  當然rowset也有其新功能.作為JavaBeans組件, RowSet對象提供了方法監聽屬性的get/set.其中一個屬性是command串,這個屬性往往是一個查詢,RowSet接口提供可設置command屬性和執行之的方法. 這意味這RowSet對象能夠執行自己的檢索命令用查詢結果填充自己的內容. 或者RowSet對象可以實現用來使用任何表格式的數據源填充自己, 而不是局限于關系數據庫.
  從數據源取得數據后, RowSet對象可以斷開于數據源的連接,這使得該對象很小(假如數據量非凡不大). rowset也可以序列化. 所以rowset很小并可以序列化, 一個斷開連接的rowset是傳送數據給瘦客戶機的理想工具.
  rowset可以被更新,然后重新連接數據源以傳送更新的值. 假如設置了監聽者, 當rowset中的游標被移動和內容變化時,會通知監聽者.
  如, 圖形界面組件(如條圖)可以被注冊為監聽者,當rowset上有事件發生將會同志它, 它可以重畫自身反映變化.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热精品视频在线免费观看| 亚洲区中文字幕| 国产亚洲视频中文字幕视频| 精品露脸国产偷人在视频| 97在线日本国产| 国产精品27p| 欧美巨猛xxxx猛交黑人97人| 久久天天躁狠狠躁夜夜av| 亚洲综合视频1区| 亚洲欧美国产制服动漫| 欧美激情久久久久| 亚洲三级av在线| 九九综合九九综合| 久久久久女教师免费一区| 日韩在线免费观看视频| 欧美成人免费小视频| 综合欧美国产视频二区| 国产精品国产三级国产专播精品人| 国产在线观看精品一区二区三区| 日韩亚洲欧美中文高清在线| 精品av在线播放| 中文字幕欧美精品日韩中文字幕| 在线亚洲午夜片av大片| 国内精品美女av在线播放| 日韩精品免费在线视频观看| 成人精品一区二区三区电影黑人| 成人国内精品久久久久一区| 最新国产成人av网站网址麻豆| 国产一区二区在线播放| 亚洲视频在线观看网站| 亚洲成人激情在线观看| 久久香蕉精品香蕉| 国产成人亚洲精品| 国产精品欧美日韩| 久久久久一本一区二区青青蜜月| 日韩高清欧美高清| 亚洲欧美成人一区二区在线电影| 国产精品69精品一区二区三区| 欧美大片在线影院| 丁香五六月婷婷久久激情| 性亚洲最疯狂xxxx高清| 亚洲国产精品女人久久久| 亚洲成人精品视频| 午夜精品一区二区三区在线视频| 国产91在线播放| 欧美人与性动交| 麻豆国产精品va在线观看不卡| 欧美日韩国产综合视频在线观看中文| 色先锋久久影院av| 欧美性理论片在线观看片免费| 岛国av在线不卡| 国产精品偷伦免费视频观看的| 欧美最近摘花xxxx摘花| 97精品视频在线| 久久99精品久久久久久噜噜| 色婷婷综合久久久久| 丝袜美腿亚洲一区二区| 午夜精品免费视频| 国产高清视频一区三区| 俺也去精品视频在线观看| 国产噜噜噜噜噜久久久久久久久| 国产精品一区二区3区| 夜色77av精品影院| 欧美国产在线电影| 欧美成人精品xxx| 欧美精品激情在线| 久久久久成人精品| 中文字幕欧美视频在线| 国产精品久久久久久久久久东京| 亚洲欧美中文另类| 91久久久亚洲精品| 亚洲人成伊人成综合网久久久| 一本大道久久加勒比香蕉| 伊人久久综合97精品| 亚洲男人天堂古典| 欧美日韩性视频在线| 久久综合伊人77777| 美女撒尿一区二区三区| 91成人在线视频| 日韩av免费网站| 欧美激情中文字幕乱码免费| 国产精品欧美日韩久久| 欧美天天综合色影久久精品| 国产精品美女999| 91在线视频九色| 国产精品扒开腿做爽爽爽男男| 精品久久久国产| 亚洲人成在线观看网站高清| 中文字幕成人精品久久不卡| 久久久精品国产网站| 亚洲人成网站免费播放| 欧美日韩国产精品一区二区三区四区| 国产精品视频网址| 日韩高清av一区二区三区| 91视频8mav| 精品久久久久久中文字幕| 欧美电影免费观看电视剧大全| 国产精品www| 北条麻妃一区二区三区中文字幕| 欧美性少妇18aaaa视频| 美女国内精品自产拍在线播放| 狠狠躁夜夜躁人人爽天天天天97| 亚洲欧洲自拍偷拍| 欧美日韩国产一区在线| 亚洲丝袜一区在线| 国产精品1区2区在线观看| 亚洲国产精品99| 成人久久一区二区三区| 亚洲美女性生活视频| 国产精品主播视频| 国产精品免费久久久久久| 日韩欧美在线视频| 欧美在线影院在线视频| 国产91精品久| 日韩av片免费在线观看| 久久精品国产96久久久香蕉| 日韩中文字幕精品视频| 精品小视频在线| 欧美视频在线观看免费网址| 欧美激情一级精品国产| 夜夜嗨av一区二区三区免费区| 91精品国产综合久久久久久蜜臀| 亚洲精品电影网| 国产精品国产三级国产aⅴ浪潮| 欧美性色视频在线| 欧美日韩性视频在线| 91香蕉电影院| 日韩av在线播放资源| 欧美激情在线观看视频| 精品呦交小u女在线| 日本19禁啪啪免费观看www| 成人性教育视频在线观看| 欧美影院在线播放| 国产美女91呻吟求| 国产成人在线播放| 久久久久久久久久av| 国产精品免费视频xxxx| 欧美激情亚洲精品| 18性欧美xxxⅹ性满足| 亚洲男人天堂九九视频| 国产精品夜间视频香蕉| 91亚洲国产成人精品性色| 91最新国产视频| 久久露脸国产精品| 亚洲人成绝费网站色www| 久久亚洲私人国产精品va| 国产精品久久久久久网站| 欧美理论电影在线观看| 国产一区二区三区在线看| 亚洲女在线观看| 欧美激情网友自拍| 亚洲淫片在线视频| 国产精品视频不卡| 国产精品一区二区久久精品| 91精品久久久久久久| 亚洲天堂网在线观看| 久久久精品国产网站| 国产丝袜高跟一区| 国产午夜一区二区| 久久亚洲成人精品| 庆余年2免费日韩剧观看大牛| 69久久夜色精品国产7777| 中文字幕欧美视频在线| 欧美亚洲在线播放|