JDBC 記錄

          Posted on 2011-11-10 13:31 cuicn 閱讀(227) 評論(1)  編輯  收藏
          Sun 制定了兩套接口。應用程序開發者使用JDBC API,而數據庫提供商和工具開發商使用JDBC驅動API。
          JDBC和ODBC基于同一個思想:根據API編寫的程序都可以與驅動管理器進行通信,而驅動管理器則通過插入其中的驅動程序與實際數據庫進行通信。
          JDBC驅動程序分類:
          1、驅動程序將JDBC翻譯成ODBC,然后使用一個ODBC驅動程序與數據庫進行通信。JDK中包含了一個程序:JDBC/ODBC橋。不建議使用。
          2、由部分Java程序和部分本地代碼組成,用于與數據庫的客戶端API進行通信。在使用這種驅動之前,不僅要安裝Java類庫,還需要安裝一些與平臺相關的代碼。
          3、純Java類庫,使用一種與具體數據庫無關的協議將數據庫請求發送給服務器構件,然后該構件再將數據庫請求翻譯成特定數據庫協議。
          4、純Java類庫,將JDBC請求直接翻譯成特定的數據庫協議。
          JDBC最終實現了一下目標:
          1、通過使用SQL語句程序員可以利用Java語言開發訪問數據庫的應用。
          2、數據庫供應商和數據庫工具開發商可以提供底層的驅動程序。因此,他們有能力優化各自數據庫產品的驅動程序。
          JDBC常用接口和類:
          JDBC提供了獨立于數據庫的統一API,用以執行SQL命令。JDBC API由以下常用的接口和類:
          DriverManager:
          用于管理JDBC驅動的服務類。程序中使用該類的主要功能是獲取Connection對象,該類包含如下方法:
          public static sysnchronized Connection getConnection(String url,String user,String pass) throws SQLException:該方法獲得url對應數據庫的連接。
          Connection:
          代表數據連接對象,每個Connection代表一個物理連接會話。要想訪問數據庫,必須先獲得數據庫連接。該接口的常用方法有:
          Statement createStatement() throws SQLException:返回一個Statement對象。
          PreparedStatement prepareStatement(String sql) throws SQLException:返回預編譯的Statement對象,即將SQL語句提交到數據庫進行預編譯。
          CallableStatement  prepareCall(String sql) throws SQLException:返回CallableStatement對象,該對象用于調用存儲過程。
          上面三個方法都是返回用于執行SQL語句的Statement對象,PreparedStatement、CallableStatement是Statement的子類。只有獲得Statement之后才可以執行SQL語句。
          初次之外,Connection還有如下用于控制事務的方法:
          Savepoint setSavepoint():創建一個保存點。
          Savepoint setSavepoint(String name):以制定名稱來創建一個保存點。
          void setTransactionIsolation(int level):設置事務隔離級別。
          void rollback():回滾事務。
          void rollback(Savepoint savepoint):將事務回滾到指定的保存點。
          void setAutoCommit(boolean autoCommit):關閉自動提交,打開事務。
          void commit():提交事務。
          Statement:
          用于執行SQL語句的工具接口。該對象既可以用于執行DDL、DCL語句,也可以用于執行DML語句,還可用于執行SQL查詢。當執行SQL查詢時,返回查詢到的結果集。常用方法:
          ResultSet  executeQuery(String sql) throws SQLException:用于執行查詢語句,并返回查詢結果對應的ResultSet對象。該方法只能用于執行查詢語句。
          int executeUpdate(String sql) throws SQLException:用于執行DML語句,并返回受影響的行數;方法可以用于執行DDL,執行DDL將返回0。
          boolean execute(String sql) throws SQLException:該方法可執行任何SQL語句。如果執行后第一個結果為ResultSet對象,則返回true;如果執行后第一個結果為受影響的行數或沒有任何結果,則返回false。
          PreparedStatement:
          預編譯的Statement對象。PreparedStatement是Statement的子接口,它允許數據庫預編譯SQL語句,以后每次只改變SQL命令的參數,避免數據庫每次都需要編譯SQL語句,因此性能更好。相對于Statement而言,使用PreparedStatement執行SQL語句時,無須傳入SQL參數,因為它已經預編譯了SQL語句。但PreparedStatement需要為預編譯的SQL語句傳入參數值,所以它比Statement多了如下方法:
          void SetXxx(int parameterIndex,Xxx value):該方法根據傳入參數的類型不同,需要使用不同的方法。傳入的值根據索引傳給SQL語句中指定為位置的參數。
          PreparedStatement同樣有executeUpdate、executeQuery和execute三個方法,只是三個方法無須接受SQL字符串,因為PreparedStatement對象已經預編譯了SQL命令,只要為這些命令傳入參數即可。
          ResultSet:
          結果集對象。該對象包含訪問查詢結果的方法,ResultSet可以通過列索引或列名稱獲得列數據。它常用方法如下:
          void close() throws SQLException:釋放ResultSet對象。
          boolean absolute(int row):將結果集移動到第幾行,如果row 是負數,則移動到倒數第幾行。如果移動后的記錄指針指向一條有效記錄,則該方法返回true。
          void beforeFirst():將ResultSet的記錄指針定位到首行之前,這是ResultSet結果集記錄指針的初始狀態:記錄指針的起始位置位于第一行之前。
          boolean first():將ResultSet的記錄指針定位到首行。
          boolean previous():將ResultSet的記錄指針定位到上一行。
          boolean next():定位到下一行。
          boolean last():定位到最后一行。
          void afterLast():定位最后一行之后。

          Feedback

          # re: JDBC 記錄  回復  更多評論   

          2011-11-16 09:26 by cuiin
          測試111

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 丰顺县| 大洼县| 渭南市| 历史| 青龙| 肥西县| 太原市| 河源市| 奇台县| 沭阳县| 固始县| 乐业县| 道真| 吴桥县| 昌平区| 盐城市| 万全县| 鸡西市| 淮安市| 新竹县| 太谷县| 鹤峰县| 鹤壁市| 睢宁县| 宣武区| 通辽市| 垫江县| 泗阳县| 乃东县| 哈尔滨市| 城步| 合肥市| 陆河县| 客服| 南陵县| 遂溪县| 贵南县| 呼图壁县| 全椒县| 平度市| 万载县|