JDBC 學(xué)習(xí)筆記1

          JDBC:
              |-- 數(shù)據(jù)庫(kù)互聯(lián)。
              |-- 由SUN公司所制定的用來訪問數(shù)據(jù)庫(kù)的規(guī)范。
              |-- 數(shù)據(jù)庫(kù)數(shù)據(jù) <= 交互 => 應(yīng)用程序。


          JDBC包含主要兩個(gè)部分:
              |-- part 1.由SUN公司制定的規(guī)范接口
                  |-- java.sql    -->  核心包
                  |-- javax.sql  -->  擴(kuò)展包
              |-- part 2.由數(shù)據(jù)庫(kù)廠商所提供的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,它們實(shí)現(xiàn)了part 1部分。

          JDBC的驅(qū)動(dòng)程序包含以下四種類型:
              |-- 第一代驅(qū)動(dòng)(JDBC - ODBC Bridge)
                  |-- 首先把JDBC的調(diào)用轉(zhuǎn)換成ODBC的調(diào)用,再用ODBC與具體的數(shù)據(jù)庫(kù)系統(tǒng)通信。
              |-- 第二代驅(qū)動(dòng) (Native - API party - Java driver 本地API部分Java驅(qū)動(dòng))
                  |-- Conrerts JDBC calls into calls on the native client API of a specific RODMS.
                  |-- 缺點(diǎn):不同的數(shù)據(jù)庫(kù)需要安裝不同的客戶端(每臺(tái)電腦都要裝)。
              |-- 第三代驅(qū)動(dòng) (JDBC - net pure Java driver 網(wǎng)絡(luò)純Java驅(qū)動(dòng))
                  |-- 提供網(wǎng)絡(luò)節(jié)點(diǎn),通過網(wǎng)絡(luò)節(jié)點(diǎn)訪問數(shù)據(jù)庫(kù)。
                  |-- Translates JDBC calls into a DBMS independent net protocol, which is then translated 
                      to a DBMS protocol by a server.
              |-- 第四代驅(qū)動(dòng) (Native protocol pure Java driver 本地協(xié)議純Java驅(qū)動(dòng))
                  |-- Conrerts JDBC calls directly into the network protocol used by DBMS.

          JDBC核心API
          java.sql
          |--    Driver    [Interface]    所有驅(qū)動(dòng)必需實(shí)現(xiàn)的接口

          |--    DriverManager    [Class]    用來管理一組數(shù)據(jù)庫(kù)的驅(qū)動(dòng)

          |--    Connection    [Interface]    與數(shù)據(jù)庫(kù)的一個(gè)連接對(duì)象

          |--    Statement    [Interface]    用于執(zhí)行一個(gè)靜態(tài)的SQL語句,并返回它所生成的結(jié)果對(duì)象
              |--    PreparedStatement    [Interface]    表示預(yù)編譯SQL語句對(duì)象(動(dòng)態(tài))
                  |--    CallableStatement    [interface]    表示用來調(diào)用存儲(chǔ)過程對(duì)象

          |--    ResultSet    [Interface]    存放查詢結(jié)果集的對(duì)象

          |--    Type    [Class]    

          |--    Blob    [Interface]    二進(jìn)制大對(duì)象

          |--    Clob    [Interface]    字符大對(duì)象

          |--    SQLException    [Class]    數(shù)據(jù)庫(kù)最底層異常(已檢測(cè)異常)
              |--    SQLWarning    [Class]    警告

          |--    DatabaseMetaData    [Class]    基本數(shù)據(jù)的元數(shù)據(jù)

          |--    ResultSetMetaDate    [Class]    結(jié)果集的元數(shù)據(jù)


           編寫JDBC程序步驟
          step1:注冊(cè)驅(qū)動(dòng)程序    [也就是把驅(qū)動(dòng)加載到JVM中]
              1.Class.forName("驅(qū)動(dòng)類的全限定名");
                  如:Class.forName("oracle.jdbc.driver.OracleDriver");
                          Class.forName("com.mysql.jdbc.Driver");
              2.使用new操作符來創(chuàng)建驅(qū)動(dòng)類對(duì)象
                  如:Driver d = new oracle.jdbc.driver.OracleDriver();
                          //DriverManager.registerDriver(d);
              3.使用系統(tǒng)屬性-Djava.drivers來指定驅(qū)動(dòng)類
                  如:-Djava.drivers = com.mysql.jdbc.Driver;
          step2:獲取數(shù)據(jù)庫(kù)連接    [Connection]
              如:
              String url = "主協(xié)議:此協(xié)議:thin:@ip地址:端口號(hào):數(shù)據(jù)庫(kù)實(shí)例名";
              String user = "XXX";
              String pwd = "XXX";
              Connection con = DriverManager.getConnection(url,user,pwd);
          step3:創(chuàng)建執(zhí)行的SQL的環(huán)境    [也就是創(chuàng)建Statement]
              如:Statement stm = con.createStatement();
          step4:執(zhí)行SQL語句
              如:String sql = "select ..........";
                      ResultSet rs = stm.executeQuary(sql);
          step5:如果是select語句,則處理結(jié)果集    [ResultSet]
              如:while(rs.next()){
                          rs.getXXX系列的方法();
                      }
          step6:釋放資源    [close]
              如:if(con != null) con.close();
                      if(stm != null) stm.close();
                      if(rs != null) rs.close();



          My Java study notes.

          posted on 2008-09-22 01:14 mailguest 閱讀(257) 評(píng)論(0)  編輯  收藏 所屬分類: JDBC


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          ~~~~~~JAVA學(xué)習(xí)筆記~~~~~~

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 大邑县| 阳原县| 京山县| 工布江达县| 乐业县| 辽源市| 盐津县| 张家口市| 肥城市| 桂东县| 安国市| 灵寿县| 乌兰浩特市| 望谟县| 远安县| 大足县| 永新县| 嵊州市| 景宁| 盘锦市| 固原市| 钟祥市| 睢宁县| 德昌县| 绩溪县| 三都| 太和县| 玉溪市| 永清县| 凤台县| 民丰县| 桦川县| 万年县| 武功县| 武邑县| 尚义县| 石楼县| 吴桥县| 锦州市| 井陉县| 白银市|