數(shù)據(jù)加載中……

          第一個(gè)JDBC程序

           

          轉(zhuǎn)自:http://www.javaresearch.org/article/9581.htm

          本篇通過一個(gè)簡單的數(shù)據(jù)庫應(yīng)用的例子告訴你如何編寫你的第一個(gè)JDBC程序。

          一、JDBC簡介


            相信在微軟平臺(tái)上開發(fā)過應(yīng)用程序的朋友一定對(duì)ODBC不會(huì)陌生,ODBC是一種用C語言開發(fā)的API,通過它,你可以訪問不同數(shù)據(jù)庫平臺(tái)上的數(shù)據(jù),目前ODBC已經(jīng)成為Windows環(huán)境下訪問數(shù)據(jù)庫的事實(shí)上的標(biāo)準(zhǔn),也是一種基本方法。但是,由于ODBC的設(shè)計(jì)過于復(fù)雜,造成它很難對(duì)外擴(kuò)展。JDBCSUN開發(fā)的一種用來進(jìn)行數(shù)據(jù)庫訪問的API,它借鑒了ODBC的的某些特點(diǎn)而沒有它的復(fù)雜性,給數(shù)據(jù)庫開發(fā)帶來了極大的便利性。同時(shí),JDBC還提供了對(duì)現(xiàn)存數(shù)據(jù)庫API(比如ODBC)的調(diào)用,使得Java應(yīng)用程序可以訪問任何支持ODBC的數(shù)據(jù)庫管理系統(tǒng)。

          二、開始


              下面這個(gè)簡單的程序演示了如何在java中連接、打開和查詢一個(gè)數(shù)據(jù)庫。本例中以mysql為數(shù)據(jù)庫平臺(tái)。


          1. import java.sql.*; ; 
          2.  
          3. public class JDBCDemo{ 
          4.     public static void main(String[] args) { 
          5.     String driver="com.mysql.jdbc.Driver";    //驅(qū)動(dòng)程序
          6.     String url="localhost/jive";     //數(shù)據(jù)庫服務(wù)器地址及數(shù)據(jù)庫名
          7.     Connection con=null;
          8.     Statement st;
          9.     ResultSet rs;
          10.         try {                    //(1)
          11.             Class.forName(driver).newInstance(); 
          12.         } catch (Exception ex) { 
          13.             // 在這進(jìn)行錯(cuò)誤處理
          14.         }
          15.     try{                    //(2)
          16.         con=DriverManager.getConnection(url,"test","test");
          17.         st=con.createStatement();
          18.         rs=st.executeQuery("Select * from jiveForums");
          19.         while(rs.next()){ //查詢結(jié)果處理
          20.          System.out.println("ID="+rs.getString(1));
          21.         System.out.println("Name="+rs.getString(2));
          22.         }
          23.      }catch(Exception e){
          24.         e.printStackTrace();
          25.      }finally{
          26.         if(con==null)return;
          27.        try{                    //(3)
          28.         con.close();
          29.        }catch(Exception e){
          30.         e.printStackTrace();
          31.        }
          32.     }
          33.     }
          34. }


          程序的第一句導(dǎo)入我們需要用到的JDBC API,為了方便,我以*來導(dǎo)入在sql中定義的所有包,你也可以只指定你用到的包,比如:java.sql.Connection等。
          在主函數(shù)中定義的兩個(gè)字符串分別是驅(qū)動(dòng)程序名和數(shù)據(jù)庫服務(wù)器地址及數(shù)據(jù)庫名。我在這里使用的是mysql數(shù)據(jù)庫,所以我用的是mysql驅(qū)動(dòng)程序,不同的數(shù)據(jù)庫用不同的驅(qū)動(dòng)程序,如果你用的不是mysql,請(qǐng)?zhí)鎿Q此行。
          服務(wù)器地址是你安裝數(shù)據(jù)庫的主機(jī)的IP,如果在本機(jī),你也可以用"localhost"來連接。數(shù)據(jù)庫名是你已經(jīng)在數(shù)據(jù)庫系統(tǒng)中建立過的,這里是test.接著在標(biāo)識(shí)為(1)try塊中裝載驅(qū)動(dòng)程序。這一步是為驅(qū)動(dòng)程序來裝載自己,然后讓驅(qū)動(dòng)程序管理器來進(jìn)行管理,在(2)try塊中,從驅(qū)動(dòng)程序管理器中取得一個(gè)連接,第一個(gè)引數(shù)已經(jīng)說過,第二個(gè)引數(shù)是數(shù)據(jù)庫中的用戶名,最后一個(gè)是口令。接著創(chuàng)建一個(gè)Statement對(duì)象來執(zhí)行查詢,查詢結(jié)果將返回一個(gè)記錄集,在這里就是rs。在接下來的while循環(huán)中來處理查詢結(jié)果,在這只是簡單的打印出來。
          finally塊中,將執(zhí)行連接的關(guān)閉,如果在前面沒有正確得到一個(gè)連接,將直接返回。
          好了,修改這個(gè)程序以適應(yīng)你的平臺(tái),然后執(zhí)行。怎么樣連接數(shù)據(jù)庫就這么簡單。

          三、注意事項(xiàng)


             1 在上面這個(gè)程序中,請(qǐng)注意不要寫錯(cuò)驅(qū)動(dòng)程序名,如果出現(xiàn)找不到驅(qū)動(dòng)程序的錯(cuò)誤,請(qǐng)檢查你的驅(qū)動(dòng)程序是否在類搜索路徑即CLASSPATH中,
          一般你下載的驅(qū)動(dòng)程序可能是以.jar為擴(kuò)展名,那么你要把此文件包含在CLASSPATH中,比如我用的mysql.jar,那么在claspath中有:c:"driver"mysql.jar
             2 數(shù)據(jù)庫服務(wù)器IP要填準(zhǔn)確,如果在本機(jī),請(qǐng)直接使用localhost,用戶名和口令是你用來操作數(shù)據(jù)庫的用戶和口令,不要認(rèn)為是操作系統(tǒng)的用戶名和口令。
             3 最后要注意,用完一個(gè)連接后要及時(shí)關(guān)閉,養(yǎng)成好的習(xí)慣。

          posted on 2008-06-23 22:26 edog 閱讀(229) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          主站蜘蛛池模板: 弥勒县| 丘北县| 永嘉县| 宾川县| 冷水江市| 天水市| 台州市| 遵义市| 永嘉县| 岳普湖县| 微山县| 小金县| 方山县| 赤峰市| 临西县| 泗水县| 安阳市| 陆河县| 鱼台县| 红安县| 海盐县| 晋中市| 河北省| 南华县| 虞城县| 永修县| 房产| 建水县| 高要市| 景宁| 达州市| 灯塔市| 普格县| 靖江市| 乐山市| 拜泉县| 景德镇市| 蚌埠市| 东阿县| 班玛县| 策勒县|