利用JAVA語言實(shí)現(xiàn)支持視頻點(diǎn)播的WEB服務(wù)器(2)_Windows教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!
      2. 與數(shù)據(jù)庫連接

        在與數(shù)據(jù)庫的連接中我們選用的后端數(shù)據(jù)庫是微軟的ACCESS數(shù)據(jù)庫,由于本項(xiàng)目是面向小型社區(qū)的社區(qū)數(shù)據(jù)中心服務(wù)器,所以選用小型的數(shù)據(jù)庫。由于JAVA的可移植性可以將服務(wù)器用在LINUX平臺(tái)上,這時(shí)可以用本服務(wù)器提供的數(shù)據(jù)庫配置程序連接到MySql等基于LINUX的小型數(shù)據(jù)庫。

        我們應(yīng)用JDBC完成與數(shù)據(jù)庫的連接。Java的一項(xiàng)出色能力是構(gòu)建與平臺(tái)無關(guān)的客戶機(jī)/服務(wù)器數(shù)據(jù)庫應(yīng)用。在Java 1.1中,通過Java數(shù)據(jù)庫連接(JDBC)實(shí)現(xiàn)了與各家公司之間的數(shù)據(jù)庫的互連。數(shù)據(jù)庫最主要的一個(gè)問題就是各家公司之間的規(guī)格大戰(zhàn)。確實(shí)存在一種"標(biāo)準(zhǔn)"數(shù)據(jù)庫語言,即"結(jié)構(gòu)查詢語言"(SQL-92),但各公司為了表示自己的與眾不同對(duì)標(biāo)準(zhǔn)都有一些微小的改動(dòng)。所以通常必須確切知道自己要和哪家數(shù)據(jù)庫公司打交道,否則極易出問題,盡管存在所謂的"標(biāo)準(zhǔn)"。JDBC是面向"與平臺(tái)無關(guān)"設(shè)計(jì)的,所以在編程的時(shí)候不必關(guān)心自己要使用的是什么數(shù)據(jù)庫產(chǎn)品。和Java中的許多API一樣,JDBC也做到了盡量的簡(jiǎn)化。我們發(fā)出的方法調(diào)用對(duì)應(yīng)于從數(shù)據(jù)庫收集數(shù)據(jù)時(shí)想當(dāng)然的做法:同數(shù)據(jù)庫連接,創(chuàng)建一個(gè)語句并執(zhí)行查詢,然后處理結(jié)果集,無論與我們打交道的是哪家數(shù)據(jù)庫廠商的產(chǎn)品。

        JDBC的使用:

        為實(shí)現(xiàn)這一"與平臺(tái)無關(guān)"的特點(diǎn),JDBC為我們提供了一個(gè)"驅(qū)動(dòng)程序管理器",它能動(dòng)態(tài)維護(hù)數(shù)據(jù)庫查詢所需的所有驅(qū)動(dòng)程序?qū)ο蟆K约偃缫B接由數(shù)家公司開發(fā)的不同種類的數(shù)據(jù)庫,就需要每個(gè)數(shù)據(jù)庫的單獨(dú)的驅(qū)動(dòng)程序?qū)ο蟆r?qū)動(dòng)程序?qū)ο髸?huì)在裝載時(shí)由"驅(qū)動(dòng)程序管理器"自動(dòng)注冊(cè),并可用Class.forName()強(qiáng)行裝載。

        為打開一個(gè)數(shù)據(jù)庫,必須創(chuàng)建一個(gè)"數(shù)據(jù)庫URL",它要指定下述三方面的內(nèi)容:

        (1) 用"jdbc"指出要使用JDBC。

        (2) "子協(xié)議":驅(qū)動(dòng)程序的名字或者一種數(shù)據(jù)庫連接機(jī)制的名稱。由于JDBC的設(shè)計(jì)從ODBC吸收了許多靈感,所以可以選用的第一種子協(xié)議就是"jdbc-odbc橋",它用"odbc"關(guān)鍵字即可指定。

        (3) 數(shù)據(jù)庫標(biāo)識(shí)符:隨使用的數(shù)據(jù)庫驅(qū)動(dòng)程序的不同而變化,但一般都提供了一個(gè)比較符合邏輯的名稱,由數(shù)據(jù)庫管理軟件映射(對(duì)應(yīng))到保存了數(shù)據(jù)表的一個(gè)物理目錄。為使自己的數(shù)據(jù)庫標(biāo)識(shí)符具有任何含義,必須用自己的數(shù)據(jù)庫管理軟件為自己喜歡的名字注冊(cè)(注冊(cè)的具體過程又隨運(yùn)行平臺(tái)的不同而變化)。

      所有這些信息都統(tǒng)一編譯到一個(gè)字串里,即"數(shù)據(jù)庫URL"。本例中,我們想通過ODBC子協(xié)議同一個(gè)標(biāo)識(shí)為"vod"的數(shù)據(jù)庫連接,相應(yīng)的數(shù)據(jù)庫URL設(shè)為:

         String dbUrl = "jdbc:odbc:vod"

        同樣如果通過一個(gè)網(wǎng)絡(luò)連接,數(shù)據(jù)庫URL也需要包含對(duì)遠(yuǎn)程機(jī)器進(jìn)行標(biāo)識(shí)的信息。

        JDBC的連接方式:

        首先,JDBC中在DriverManager中對(duì)數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動(dòng)程序進(jìn)行登記。

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        裝載JDBC- ODBC橋驅(qū)動(dòng)程序,這樣做是為了讓DriverManager可以找到數(shù)據(jù)庫驅(qū)動(dòng)程序。然后利用DriverManager打開與數(shù)據(jù)庫的連接。

        Mycon=DriverManager.getConnection(dbUrl);

        本語句的作用是,確定與由dbUrl指定的數(shù)據(jù)庫的連接。DriverManager將從其中登記的驅(qū)動(dòng)程序中尋找最適當(dāng)?shù)尿?qū)動(dòng)程序。返回的Mycon代表了與特定的數(shù)據(jù)庫之間的連接。 

        Mysta=Mycon.createStatement();

        生成可以執(zhí)行無參數(shù)SQL語句的Statement接口。 然后就可以在Mysta中用executeQuery()函數(shù)執(zhí)行SQL語句從返回的ResultSet獲取執(zhí)行結(jié)果。

      來源:網(wǎng)絡(luò)搜集//所屬分類:Windows教程/更新時(shí)間:2013-04-15
      相關(guān)Windows教程