亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDBC基礎-從應用程序創建applet

2019-11-18 11:57:01
字體:
來源:轉載
供稿:網友

  假設Coffee Break的老板想在Web頁上的applet中顯示當前的咖啡價格。讓applet直接從數據庫提取價格,他就可以確信顯示的是最新價格。
  
  為此需要創建兩個代碼文件,一個保存applet代碼,一個保存Html代碼。applet代碼包含一般程序都有的JDBC代碼以及運行applet和顯示數據庫查詢結果的附加代碼。本例中applet代碼保存在OutputApplet.java文件中。為在HTML頁中顯示applet,文件OutputApplet.html會告訴瀏覽器要顯示的內容及顯示的位置。
  
  本節其余部分講述applet代碼中的各種元素,它們在獨立應用程序中是不會出現的。其中某些元素包括了Java程序設計語言的一些高級特性。這里給出了一些基本原理和基本解釋,但對它們的完全解釋超出了本教程范圍。為完成該示例applet,只需把握一般的思想,因此不用擔心沒有完全了解。您可用該applet代碼作模板,將查詢替代為自己的即可。
  
  編寫applet代碼
  
  編寫代碼前,applet導入獨立應用程序沒有用到的一些類。applet導入了applet特有的兩個類:Applet類(java.applet包的一部分)和Graphics類(java.awt包的一部分)。applet還導入了通用的java.util.Vector類以便訪問類似于數組、大小可修改的容器。這些代碼使用Vector對象保存查詢結果以在后面顯示。
  
  所有的applet擴展了Applet類;換言之,它們是Applet的子類。因此每個appplet定義必須包含extends Applet字樣,如下所示:
  
  public class MyAppletName extends Applet {
  . . .
  }
  
  在applet例子OutputApplet中,這行代碼也包括implements Runnable字樣,實際代碼如下:
  
  public class OutputApplet extends Applet implements Runnable {
  . . .
  }
  
  Runnable是一個接口,它答應一次運行多個線程。線程是連續的控制流,程序可以是多線程的,換言之,很多線程并發地處理不同事情。OutputApplet類通過定義run方法——Runnable中的惟一方法來實現Runnable接口。本例中run方法包含有如下用途的JDBC代碼:打開連接、執行查詢及從結果集中檢索結果。由于數據庫連接可能較慢,有時需幾秒鐘,通常好的想法是構建一個applet以使用不同線程處理數據庫工作。
  
  與獨立應用程序(需要一個main方法)類似,一個applet至少要實現一個init、start或paint方法。示例applet定義了一個start方法和一個paint方法。每次調用start時就會創建一個新線程(名為worker)以重估數據庫查詢。每次調用paint時要么顯示查詢結果,要么顯示描述當前applet狀態的字符串。
  
  如前所述,OutputApplet中定義的run方法包含了JDBC代碼。當線程worker調用start方法時就會自動調用run方法執行線程worker中的JDBC代碼。run方法中的代碼與其他示例代碼中看到的帶有3個異常的代碼非常相似。首先它使用Vector類保存查詢結果。第二它沒有輸出結果,而是把結果添加到Vector results中以在后面顯示。第三它同樣沒有輸出異常,而是記錄錯誤消息以在后面顯示。
  
  applet使用各種方式描繪/顯示內容。該applet是一個僅有文本的簡單applet,使用drawString方法(Graphics類的一部分)顯示文本。drawString方法帶有3個參數:(1) 要顯示的字符串;(2) x坐標——指出顯示字符串的橫向起點;(3) y坐標——指出顯示字符串的縱向起點(這在文本下面)。
  
  OutputApplet.java中的paint方法調用drawString方法在屏幕上實際顯示內容。drawString主要顯示Vector results中的數據(存儲的查詢結果)。當沒有查詢結果時,drawString將顯示String message的當前內容。這個字符串將以“Initializing”開始。當調用start方法時,這個字符串設為“Connecting to database”;當碰到一個異常時,setError方法就將它設為錯誤消息。因此,假如數據庫連接要開銷一定時間,applet瀏覽者將會看到消息“Connecting to database”,這就是message那時的內容(當AWT要applet在屏幕上顯示它的當前狀態時,AWT就會調用paint方法)。
  
  OutputApplet類中定義的最后兩個方法setError和setResults是專用的,這表明它們只可讓OutputApplet使用。這兩個方法都調用了repaint方法以清除屏幕和調用paint。因此假如setResults調用repaint,將顯示查詢結果;假如setError調用repaint,將顯示錯誤消息。
  
  最后,OutputApplet中定義的所有方法(除run方法外)都是同步的(synchronized)。要害字synchronized表明當一個方法訪問一個對象時,其他的同步方法將不可再訪問那個對象。方法run沒有聲明為同步,因此applet仍可以在處理數據庫連接時在屏幕上描繪自己。假如數據庫訪問方法是同步的,那么在執行期間會阻止重畫applet,這就可能導致延遲,且不會顯示任何相關的狀態消息。
  
  總之,好的編程習慣是在applet中做一些獨立應用程序不需做的事情:
  
  將JDBC代碼放入獨立的線程。
  
  延遲期間在屏幕上顯示狀態消息(如在連接數據庫時開銷較長時間)。
  
  在屏幕上顯示錯誤消息,而不是將它們輸出到System.out或System.err。
  
  運行Applet
  
  在運行示例applet前需要編譯文件OutputApplet.java。編譯創建了可在OutputApplet.html文件中引用的OutputApplet.class文件。
  
  運行applet最輕易的方式是使用applet查看器(JDK的一部分)。只要使用下面各種平臺下的指令就可以編譯和運行OutputApplet.java:
  
  UNIX
  
  javac OutputApplet.java
  appletviewer OutputApplet.html
  
  Windows 95/NT
  
  javac OutputApplet.java
  appletviewer OutputApplet.html
  
  在網上加載applet有著安全方面的限制。盡管這會顯得麻煩,但對于網絡安全是絕對必要的,安全是Java程序設計語言的一個主要優點。除非瀏覽器答應網絡連接,否則applet只可對它的源主機進行網絡連接。一臺主機是否認為本地安裝的applet是“信任的”,這取決于瀏覽器上設置的安全限制。applet通常不能讀/寫在執行它的主機上存放的文件,也不可加載庫和定義本地方法。
  
  通常applet可對它們的源主機進行網絡連接,因此它們可在Intranet上很好地運行。
  
  JDBC-ODBC Bridge驅動程序有點例外。它可以非常成功地用于Intranet訪問,但它要求在每個客戶端上安裝ODBC、橋、橋本地庫和JDBC。使用這種配置就可在Java程序和信任的applet中進行Intranet訪問。由于橋要求非凡的客戶端配置,所以在使用JDBC-ODBC Bridge驅動器的Internet上運行applet很不實際。這是JDBC-ODBC Bridge而不是JDBC的一個局限。假如使用純Java JDBC驅動程序,不必做任何非凡配置就可在Internet上運行applet。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性极品xxxx娇小| 欧美另类老肥妇| 国产一区二区黄| 亚洲人成电影网站色| 国产精品偷伦一区二区| 永久免费看mv网站入口亚洲| 国产精品女人久久久久久| 国产日韩换脸av一区在线观看| 日韩欧美高清在线视频| 久久国产精品影视| 欧美野外猛男的大粗鳮| 国产精品久久久久久久久久| 亚洲欧美精品中文字幕在线| 亚洲国产小视频在线观看| 超碰日本道色综合久久综合| 欧美在线观看一区二区三区| 国产成人精品在线| 欧美高清一级大片| 国产精品入口日韩视频大尺度| 国产精品久久久久久一区二区| 高潮白浆女日韩av免费看| 亚洲va码欧洲m码| 国产精品欧美久久久| 久久亚洲精品视频| 国产精品流白浆视频| 日韩资源在线观看| 岛国视频午夜一区免费在线观看| 国产综合福利在线| 欧美一级大片视频| 韩曰欧美视频免费观看| 国内精品400部情侣激情| 国产亚洲欧美日韩精品| 亚洲高清av在线| 国产精品69精品一区二区三区| 精品久久香蕉国产线看观看gif| 国内精品久久久久久| 黑人巨大精品欧美一区二区免费| 97国产在线视频| 欧美日韩国产一区二区三区| 91精品国产自产在线| 中国人与牲禽动交精品| 欧美性xxxx极品hd满灌| 久久久久久久久久国产| 色七七影院综合| 亚洲精品一区在线观看香蕉| 亚洲第一区在线观看| 日韩电影中文 亚洲精品乱码| 国产美女高潮久久白浆| 欧美激情视频网址| 欧美性xxxxx极品| 久久视频中文字幕| 欧美一级淫片aaaaaaa视频| 日韩在线视频中文字幕| 91精品国产高清自在线看超| 国语自产精品视频在线看抢先版图片| 国产成人+综合亚洲+天堂| 日韩av一区二区在线| 日本免费在线精品| 亚洲人成亚洲人成在线观看| 日韩精品极品在线观看| 亚洲视频在线免费看| 欧美理论电影网| 久久影院资源站| 亚洲国产成人精品女人久久久| 国产精品久久久久久av| 日韩欧美亚洲范冰冰与中字| 亚洲最大福利视频网站| 成人精品视频久久久久| 在线日韩日本国产亚洲| 欧美日本精品在线| 91社影院在线观看| 国产精品男人的天堂| 欧美国产精品va在线观看| 久久精品影视伊人网| 欧洲美女免费图片一区| 一夜七次郎国产精品亚洲| 久久久久久中文字幕| 欧美性猛交xxxx久久久| 亚洲综合色av| 国产91精品久久久久| 孩xxxx性bbbb欧美| 97婷婷涩涩精品一区| 国产亚洲精品久久久久久| 裸体女人亚洲精品一区| 欧美高跟鞋交xxxxhd| 97在线观看免费| 日韩在线观看免费全| 亚洲成人a级网| 久久久久久久国产精品| 国产69精品久久久久9| 国产精品成人一区二区| 亚洲美女中文字幕| 国产伦精品一区二区三区精品视频| 成人黄色片在线| 欧美成人一区二区三区电影| 亚洲欧美中文日韩v在线观看| 国产精品扒开腿做爽爽爽视频| 韩剧1988在线观看免费完整版| 日本道色综合久久影院| 久久精品在线视频| 欧美性猛交99久久久久99按摩| 日韩电影免费在线观看中文字幕| 欧洲美女7788成人免费视频| 亚洲欧洲第一视频| 国产一区二区三区直播精品电影| 国产丝袜一区二区三区免费视频| 97在线视频免费播放| 欧美国产日产韩国视频| 日韩色av导航| 日韩中文字幕在线观看| 亚洲一区第一页| 国产精品国产自产拍高清av水多| 欧美第一淫aaasss性| 国产有码在线一区二区视频| 这里只有精品久久| 91久久精品国产91久久性色| 欧美三级免费观看| 69视频在线免费观看| 国产成人激情视频| 亚洲国产成人精品久久| 91禁国产网站| 宅男66日本亚洲欧美视频| 亚洲成av人片在线观看香蕉| 日韩一区二区三区xxxx| 日韩欧美综合在线视频| 57pao国产精品一区| 欧美日韩高清在线观看| 国产激情久久久| www日韩中文字幕在线看| 国产精品99久久久久久人| 亚洲二区中文字幕| 亚洲影院在线看| 国内精品模特av私拍在线观看| 精品国产一区二区三区四区在线观看| 久久色在线播放| 操91在线视频| 亚洲乱码av中文一区二区| 青青草原成人在线视频| 欧美疯狂性受xxxxx另类| 国产成人自拍视频在线观看| 狠狠躁18三区二区一区| 日韩中文字幕视频在线| 色哟哟亚洲精品一区二区| 日韩av在线网址| 国产精品福利网| 欧美成人一区在线| 欧美人与性动交| 国产精品旅馆在线| 国产日产欧美精品| 久久精品91久久久久久再现| 一本一本久久a久久精品牛牛影视| 亚洲成人动漫在线播放| 欧美成人午夜激情视频| 国产成人福利夜色影视| 色先锋久久影院av| 亚洲性视频网站| 综合激情国产一区| 国产一区二区三区在线观看网站| 欧美高清理论片| 欧美亚洲激情在线| 欧美日韩一区免费| 欧美第一黄网免费网站| 欧美巨猛xxxx猛交黑人97人| 亚洲欧洲一区二区三区久久|