筆記

          way

          JDBC Recipes(一Introduction)

          What Is JDBC ?

            JDBC 是java編程中一系列允許簡單連接到很多數據庫(特別是關系型數據庫)編程APIs . In Java 2 Platform, Standard Edition (J2SE) 5.0,
          JDBC API 由兩個包定義:

          java.sql :提供java訪問處理貯存在數據源(特別是關系型數據庫)中的數據,有最基礎常用的對象如Connection, ResultSet, Statement, and PreparedStatement。這個包j2se 和j2ee平臺都可使用。

          javax.sql:提供java訪問處理服務器端數據源。這個包給j2ee提供服務,如DataSource 和RowSet。

          ODBC bridge是以ODBC標準 C API 方式實現JDBC 的庫。

          簡而言之,JDBC是一個和database-independent 的訪問數據庫的API。

          DriverManager是唯一可以創建數據庫連接的類。DriverManager根據各個廠商(如Oracle, MySQL, and Sybase)提供的驅動創建數據庫。

          What Is ODBC ?

            Open Database Connectivity (ODBC) 是一種來自微軟的編程接口,他為Windows應用程序訪問網絡上數據庫提供了通用語言。 ODBC is a C-based interface
          to SQL-based database systems. It provides a consistent interface for communicating with a database and for accessing database metadata (information about the database system vendor and how the tables, views, and data are stored).ODBC作為標準出現。廠商為各自的DBMS提供了各種的驅動或bridges。從java客戶端訪問ODBC-based數據庫,可以使用JDBC-ODBC bridge,因此可以使用JDBC-ODBC bridge訪問支持ODBC的數據庫,比如Microsoft Access。微軟為他的操作系統提供ODBC driver manager。ODBC driver manager協調訪問ODBC驅動和對應的數據源。

          問題:如果用c++寫數據庫客戶端,你不得不在另一平臺重新寫客戶端;PC版的不能在Macintosh上運行。兩個原因:1.c++不是跨平臺的,很多東西沒有特別指定(如int型用多少位表示)2 更重要的是,想網絡訪問,GUI框架庫等在各個平臺不同。ODBC的另一個問題是,接口復雜學習時間長。JDBC去除了這些問題,為訪問關系數據庫引入平臺無關的解決方案。因為性能問題和缺少事務支持, JDBC-ODBC bridge 驅動只適合實驗用或沒有其他可選方法。

          What Is a JDBC-ODBC Bridge?

             簡而言之,JDBC-ODBC bridge通過大多數ODBC驅動來提供JDBC訪問。它是一個把JDBC操作轉換為ODBC操作的JDBC驅動。(ODBC操作是由 C-based libraries實現的——ODBC功能仍然在二進制代碼庫中;如果數據庫或硬件平臺更換,需要替換ODBC庫)。brige作為sun.jdbc.odbc包實現,包含一個native library用來訪問ODBC。sun.jdbc.odbc包在/jre/lib/rt.jar中,包含一個sun.jdbc.odbc.JdbcOdbcDriver類,用來JDBC驅動。注意,JDBC-ODBC bridge是一種“萬能”的方式,因此可能比一些特別設計的JDBC驅動慢。

          SQL is a Data Manipulation Language (DML—影響數據庫對象內容的命令集) and a Data Definition Language (DDL—影響數據庫對象結構的命令集).SQL also 提供控制事務命令 (such as commit and rollback)

          連接jdbc的過程參考JDBC加載分析 。總之JDBC驅動的作用是提供各種數據庫的具體實現(實現了java.sql.Driver接口),隱藏具體數據庫的細節(每個數據庫廠商可能會為同一個數據庫提供不止一個驅動,這些效率,價格/性能會有不同)。

          在fianlly中立刻關閉/釋放 JDBC資源(such as the ResultSet, Statement, PreparedStatement, and Connection objects),而不是等他們自己關閉,會改進應用程序的性能。寫一個工具類釋放這些資源是一個好辦法。

          JDBC API主要用來傳SQL statement給數據庫,但也能讀寫表格式數據源的數據,這種來自javax.sql.RowSet組接口的讀寫能力可以被定制去使用更新spreadsheet,flat file 類似表格式數據源的數據。

          JDBC有四種類型的驅動連接數據庫。

          異常:SQLException:有getNextException()可以鏈接一系列異常,還有很多方法可以展示額外的錯誤/異常信息。SQLWarning:SQLException的子類,表示非致命可忽略BatchUpdateException:批量更新時出現的錯誤,除了SQLException提供的信息,還有錯誤發生前已成功執行多少條數據DataTruncation:意外truancate 數據拋出。

          posted on 2010-04-30 13:54 yuxh 閱讀(320) 評論(0)  編輯  收藏 所屬分類: j2eeJDBC

          導航

          <2010年4月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阿勒泰市| 安平县| 敦化市| 台东市| 宜兰县| 铜梁县| 西丰县| 龙陵县| 喀什市| 卓资县| 虞城县| 新安县| 五台县| 任丘市| 马鞍山市| 宁远县| 易门县| 郁南县| 犍为县| 慈利县| 高密市| 静海县| 肃北| 阿尔山市| 新巴尔虎左旗| 鄂州市| 临沭县| 宁河县| 开平市| 苏尼特右旗| 石林| 平阴县| 镇原县| 宁海县| 福泉市| 玉门市| 阿拉尔市| 固阳县| 策勒县| 巴林左旗| 乌兰浩特市|