国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

加快在JDBC設(shè)計(jì)中的JSP數(shù)據(jù)庫(kù)訪問速度

2024-09-05 00:19:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

jsp程序都是模塊,并且具有強(qiáng)大的表達(dá)-請(qǐng)求(presentation-request)功能。建立一個(gè)完美的數(shù)據(jù)庫(kù)訪問是一個(gè)具有挑戰(zhàn)的過程,而jdbc接口能夠很好地完成這一過程。然而,嵌入于jsp代碼中的jdbc代碼,與sql命令嵌入在jdbc一樣,可以充分利用jsp的功能,為客戶端建立一個(gè)整潔而簡(jiǎn)便的api。為了達(dá)到這一目的,我們可以考慮到使用jsp操作來(lái)建立數(shù)據(jù)庫(kù)接口組件。

完美的jsp設(shè)計(jì)模式是model-view-controller (mvc)。傳統(tǒng)三層體系為:model為程序邏輯和數(shù)據(jù);view為查看;以及controller為請(qǐng)求處理。遵循這一模型,一個(gè)jsp程序包含客戶端-服務(wù)器“對(duì)話框”的每一“行”的頁(yè)面。在一個(gè)典型的程序中,你可以看到一個(gè)查詢頁(yè)面,一個(gè)驗(yàn)證頁(yè)面,一個(gè)數(shù)據(jù)庫(kù)插入頁(yè)面,一個(gè)數(shù)據(jù)庫(kù)更新頁(yè)面,等等。

在上一篇的文章中,我們討論到如何在每一頁(yè)面中嵌入jdbc,以保證程序的結(jié)構(gòu)更加合理。然而,建立可執(zhí)行的sql命令,正如變量通過jdbc命令而傳遞一樣,也有可能會(huì)增加程序的復(fù)雜性。

jdbc設(shè)計(jì)的jsp操作

jsp數(shù)據(jù)庫(kù)操作的另一方法是,在不使用jdbc的情況下為數(shù)據(jù)庫(kù)建立一些操作的集合。使用這種方法,你可以得到兩種好處:

第一,你可以消除使用jdbc的必要,這就使得很多工作得以簡(jiǎn)化;

第二,你的設(shè)計(jì)和代碼的組織更加合理(比如可讀性,靈活性,以及可維護(hù)性)。

你仍然需要一些驅(qū)動(dòng)程序,但你首先簡(jiǎn)化以上的操作。jsp程序中的操作都是一些邏輯塊,通常被其它的jsp程序開發(fā)者編寫和利用,但你可以把它們當(dāng)成子程序來(lái)使用。使用jsp操作的意義是標(biāo)準(zhǔn)化某些功能,以及最大程度地減少嵌入在jsp的java代碼數(shù)量。

jsp提供了一套標(biāo)準(zhǔn)擴(kuò)展的類。通過這些類,你可以通過一個(gè)標(biāo)簽管理器器(tag handler)定義一個(gè)操作。這里有兩個(gè)jsp定義的java接口:tag接口和bodytag接口,分別是由tagsupport類和bodytagsupport類執(zhí)行。

你可以建立通用jsp用途的一個(gè)標(biāo)簽庫(kù),并且你也可以執(zhí)行標(biāo)簽管理器(tag handler)以擴(kuò)展類的支持。以下是實(shí)現(xiàn)這些過程的步驟。

首先,執(zhí)行一個(gè)標(biāo)簽管理器的類:

packagecom.myactions;

(import statements go here)

public class myactiontag extends tagsupport {

...

}

接著,編譯這段代碼,并將類文件放置在程序的類庫(kù)中。然后,你將需要一個(gè)tag library descriptor (tld)文件,這是一個(gè)xml文件,以匹配你的操作名稱和相應(yīng)的標(biāo)簽管理器的類。

<tag>       <name>myaction</name>       <tagclass>com.myactions.myactiontag</tagclass>       <bodycontent> (whatever)  </bodycontent>       <attribute>mydata</attribute></tag>

相關(guān)的trialware

.dbutils (apache software foundation)

.ibm informix jdbc driver (ibm)

.mysql connector/j 3.0 (mysql ab)

.sql4x manager j 2.2 (macosguru)

.informix downloads (ibm red brick warehouse 32bit) (solaris) (ibm)

.informix downloads (ibm red brick warehouse 64bit) (hpux) (ibm)

更多trialware

假設(shè)你已經(jīng)建立一個(gè)名為myaction的操作,這是一個(gè)與com.myactions.myactiontag類匹配的tld。tld文件必須位于程序的tlds路徑。

當(dāng)你從一個(gè)jsp頁(yè)調(diào)用操作時(shí),tld告訴jsp正確的類以使用操作。這就帶來(lái)極大的方便,而且只需要少量的代碼。

但是,從何引入sql?首先,你需要建立具有連接功能的數(shù)據(jù)庫(kù)訪問。你可以使用javax接口來(lái)完成,而javax可見于jdbc 2.0 optional工具箱。jdbc 2.0的javax.sql.datasource類提供了你所需要的連接。

此時(shí),sql位于什么地方?它在bean中。你可以使用jdbccreatestatement和preparedstatement在bean中建立一個(gè)方法。將這一方法成為一個(gè)公共的vector,并正確地將你的sql聲明傳遞到這一方法。

總結(jié)

你的數(shù)據(jù)庫(kù)bean執(zhí)行一個(gè)嵌入在操作體的sql語(yǔ)句,你可以傳遞一個(gè)語(yǔ)句給sql語(yǔ)句,或者使用它來(lái)執(zhí)行一個(gè)預(yù)先的操作。可以通過標(biāo)簽管理器來(lái)執(zhí)行你的操作。由于jdbc被嵌入于庫(kù)代碼中,你將不能在jsp程序中明確地使用它。

初次使用這種方法會(huì)覺得它比jdbc中的嵌入sql,以及jsp中的嵌入jdbc更加復(fù)雜,但是,你建立sql操作并將它們存放在一個(gè)tld,你只需做一次,在所有的jsp程序中就可以訪問這些操作。這就是這種方法的優(yōu)點(diǎn)。

  • 本文來(lái)源于網(wǎng)頁(yè)設(shè)計(jì)愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。
  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 磴口县| 泗阳县| 柞水县| 英山县| 石首市| 沐川县| 绥化市| 舟山市| 全州县| 南溪县| 防城港市| 古浪县| 孟连| 洛阳市| 潢川县| 嘉兴市| 楚雄市| 明溪县| 广东省| 连南| 兖州市| 商水县| 南宫市| 仪陇县| 汉沽区| 桐梓县| 乾安县| 蒙山县| 阿克陶县| 射阳县| 普宁市| 喀喇| 馆陶县| 建德市| 抚松县| 清水河县| 广丰县| 和顺县| 佛冈县| 三亚市| 政和县|