<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用Java Applet訪問數據庫(轉載)

      [摘要]使用Java Applet訪問數據庫學習任何的程序語言,當然都得與數據庫,Java剛剛誕生的時候,對數據庫的支持并不是很好,經過這幾年的發展,它對數據庫的支持也已經完全達到了成熟的境地。由于這里主要...
      使用Java Applet訪問數據庫

      學習任何的程序語言,當然都得與數據庫,Java剛剛誕生的時候,對數據庫的支持并不是很好,經過這幾年的發展,它對數據庫的支持也已經完全達到了成熟的境地。由于這里主要是介紹Java Applet小程序, 因此,不可能用大的篇幅去給大家介紹數據庫的知識了,怎么樣去建立與設計數據庫,還是請大家自己找點書看看吧!這兒,對不住了。

      我們這兒以Microsoft Access數據庫為例子來說明怎么實現一個數據庫的打開與讀取的知識。

      第一步:
      使用Microsoft Access創建一個數據庫,也就是我的這個例子要用到的,內容就隨便了。

      第二步:也就是編程序了。

      1)定義變量,變量的定義如下:

      TextArea theVisits=new TextArea (6,80); 
      //顯示數據庫的內容
      TextField theStatus=new TextField ("",80);
      //顯示打開數據庫的信息。相當于程序的狀態欄
      Connection theConnection; //數據庫的連接方法
      Statement theStatement; //代表一個發送到數據庫來執行的數據庫命令
      ResultSet theResult; //讀取的數據結果,也就是數據庫返回的結果
      ResultSetMetaData theMetaData;
      //包含了有關數據庫命令執行后 返回結果的有用信息。
      String theDataSource; //包含了被訪問數據庫或者數據源的名稱,用URL形式表示 .
      String theUser; //數據庫的用戶名
      String thePassword;//數據庫的密碼
      2)實現界面,可以用開始時給大家介紹的方法來實現,界面的實現相對來說,

      比較的簡單了,如下:

      public void init()
      {
      add(theVisits);
      add(theStatus);
      theVisits.setEditable (false); //設置文本區域不可以被用戶寫入
      theStatus.setEditable (false); //設置文本區域不可以被用戶寫入
      openConnection();//打開數據庫的連接
      execSqlCommand("select * from MyTable");//從數據庫中讀取內容
      closeConnection(); //關閉已經打開的數據庫
      }
      3)打開某個數據庫的連接

      public void openConnection()
      {
      theDataSource="jdbc:odbc:MyAccess";
      theUser="";
      thePassword="";
      try
      {
      Class.forName("Sun.jdbc.odbc.JdbcOdbcDriver");
      theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);
      theStatus.setText("Status:OK");
      }
      catch (Exception e)
      {
      handleException(e);
      }
      }

       包含數據源名稱的字符串格式為一個特殊的語句:

      jdbc:<subpotocol>:<subname>

       協議 名jdbc必須提供,子協議和子名稱根據使用數據源類型而變化。
      JDBC DriverManager使用子協議來選擇書記源響應的驅動程序。子協議
      的通常值為“odbc”和“oracle“,子名稱包含了該驅動程序使用的附加
      信息。通常情況,該子名稱是某個網絡名稱,例如,用于其它Web服務:

      jdba:<subpotocol>://<host.domin><port>/<databasename>

      驅動程序的說明應該指定子協議和子名稱的正確形式。使用ODBC時,主機
      和端口信息沒有必要提供,因為數據源總是配置在本地主機上。用于ODBC數據源的形式是

      jdbc:odbc:<data source name>

      為了打開數據庫連接,用戶必須使用具體的驅動程序另外,驅動程序應該指
      定如何這樣做。如果正在使用JDBC-ODBC橋程序,那么可以通過使用名為Class類
      的forName()方法來使用具體的JDBC-ODBC橋驅動程序。

      class.forName("sun.jdbc.JdbcOdbcDriver");

      然后,擁護可以告訴rManager打開數據源的連接,使用下列方法:

      theConnection=DriverManager.getConnection(theDataSource,theUser,thePassword);

      getConnection()方法返回一個Connection對象,用戶應該保存這個對象,
      因為它是訪問數據源的方法。這里,該對象保存到名為theConnection的字段中。

      如果在打開連接過程中出現錯誤,則SQLexception作廢,通過在try-catch
      塊內打開連接的語句,擁護可以處理這種異常。通過使用后面要講的handleException(),
      在TextField內顯示一個簡短的相應信息。

      4)執行SQL命令

      public void execSQLCommand(String command)
      {
      try{
      theStatement=theConnection.createStatement();
      theResult=theStatement.executeQuery (command);
      theMetaData=theResult.getMetaData ();
      int columnCount=theMetaData.getColumnCount ();
      theVisits.setText("");
      while(theResult.next ())
      {
      for(int i =1;i<=columnCount;i++)
      {
      String colValue=theResult.getString(i);
      if(colValue==null)colValue="";
      theVisits.append (colValue+";");
      }
      theVisits.append ("\n");
      }
      }catch(Exception e)
      {
      handleException(e);
      }
      }
      為了執行該命令,程序使用Connection對象的createStatement()方法創建
      一個可以有查詢的Statement。然后,它激活Statement對象的executiveQuery()
      方法,用來傳遞包含SQL查詢語句的字符串。從init()中傳送過來的參數——
      Slect * from MyTable是一個簡單的數據庫查詢語言,如果你還不知道什么意思,
      那么請你還是查看一本有關數據庫的書吧,這些內容很多,不是我這兒一下子能說
      清楚的了。它的意思簡單的說,就是查找表——MyTable中的所有(*)信息。它會
      返回數據庫中的所有內容,并把它作為ResultSet訪問的結果。接著該程序激活ResultSet
      對象的getMetaData()方法。這時,返回一個ResultSetMetaData值,該值存儲在
      一個稱為theMetaData的變量中。使用ResultSetMetaData對象,可以獲得很多有用的
      數據;這里該程序使用getColumnCount()方法獲得結果表中列的數量。最后,該程序反
      復使用該結果表,激活theResult的next()方法獲得結果表中的每一條記錄,只到該方法
      使用完全部記錄返回flase為止。

      5)關閉數據庫連接

      public void closeConnection()
      {
      try{
      theConnection.close ();
      }
      catch(Exception e)
      {
      handleException(e);
      }
      }
      當用戶訪問完某個數據庫時,應該關閉數據庫連接,釋放與連接有關的資源。用戶創建
      的任何打開的ResultSet或者Statement對象將 自動關閉。另外,在關閉連接時可能發
      生一個SQLException,也放到后面處理。

      6)處理異常和錯誤

      public void handleException(Exception e)
      {
      theStatus.setText("Error:"+e.getMessage ());
      e.printStackTrace ();
      if(e instanceof SQLException)
      {
      while((e=((SQLException)e).getNextException ())!=null)
       {
      System.out.println(e);
      }
      }
      }
      handleException()方法用來處理以上的錯誤和異常。該方法設置狀態TextField包含與
      異常有關的錯誤消息,使用getMessage()方法獲得該消息。它還可以在System.out打印
      堆棧軌跡。

      三 安裝ODBC數據源

      為了運行這個應用程序,用戶必須 首先創建一個與MyTable數據庫相對應的 ODBC數據源。
      為了通過ODBC使用Access,用戶必須安裝Access Odbc驅動程序。如果用戶沒有安裝該驅動
      程序,那么還是先安裝吧,什么,不會,不會也不行了,找一本書好好看看吧,這是肯定要
      看的。我這兒簡單的給你說一下吧:

      1.從控制面板中選擇ODBC-32,雙擊(要是沒有這個圖標,那我真的沒有辦法了,它在安裝
      數據庫的時候,應該會安裝上的,否則就只能找一張數據庫系統的安裝盤,找到ODBC驅動程
      序進行安裝)。

      2.單擊添加,選擇Microsoft Access Driver。(如果這個圖標也沒有,那么你的機器是嚴
      重缺乏營養,趕緊裝數據庫必須的軟件,先裝Access,這兒要用)

      3.輸入你要使用的數據源的名稱(如果沒有,那就得先創建,我這兒就不說Access的使用方
      法了)。描述就隨便你了。

      4.單擊選擇按鈕選擇你已經創建好了的Access數據庫的文件。

      5.點確定就可以了。如果你想為你數據庫保密的話,可以加上用戶名和密碼。(在高級選項里面)。

      要說明一點的是,如果你用VJ++編輯的此程序,要是運行不了,那就是數據庫的連接沒有設
      置好,怎么將數據庫設計好,以后再說吧。另外,VJ++有它自己的數據庫驅動程序。很適合與
      VJ++一起使用,可惜介紹這方面的書好象不是很多。




      日韩精品一区二区三区高清