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

首頁 > 編程 > JSP > 正文

建立JSP操作提高數據庫訪問效率

2024-09-05 00:20:23
字體:
來源:轉載
供稿:網友


    從服務器端促進程序快速開發的java server pages (jsp)決定它成為一種廣為流行的工具。雖然呆板的一面仍然存在,然而無論它包含多少缺點,jsp能夠為web程序設計者提供很多東西,尤其是與數據庫的輸入和輸出操作與數據的處理。

    通過jsp來進行數據庫訪問不需要太多的引導。問題是如何使開發者能夠接受web程序的數據庫訪問比傳統的本地olap系統的數據庫訪問更加具有吸引力,并且使他們認識到,整潔和簡要的數據訪問方法才是關鍵的。在這一點上,jsp可以很好地解決。

    你能夠做哪些?

    如果你正在編寫高數據量、數據密度大的web程序時,你的數據庫訪問應該具備哪一方面的要求?如果你正在使用jsp,那么你必須處理大量的服務器端的數據。程序也許需要大量的數據,或者很多用戶,或者這二者的結合。你所考慮的可能范圍還會包括:性能的優化,可檢測性,每一用戶的多個查詢的影響,查詢的復雜性,以及當單一的會話處理大量數據時,高等級的類型轉換。

    這其中包含大規模的處理。但是,jsp能夠幫助你很好地處理,因為它能夠與java database connectivity api (jdbc)很好的兼容。你可以將jdbc包含在jsp代碼中,并且jdbc能夠傳遞聲明執行類似數據庫的命令,只要你能夠正確地使用jdbc驅動程序。

    開始

    這里是一個通常的、抽象的jsp程序執行的體系。首選的jsp設計模式為模型-視圖-控制器(mvcmodel-view-controller),即傳統三層體系的一種變異,以更好的適合于服務器程序。在jsp的mvc設計模式中,model指的是程序的邏輯與數據,view為查看,以及controller為請求處理。

    當你設計一個jsp程序時,在客戶端與服務器交互之間建立第一步驟的頁面,這是最好的一個過程。例如,在一個典型程序中,在數據交換中的每一個特定步驟都會有頁面:一個數據入口頁面,一個驗證請求頁面,一個數據庫響應頁面,以及這些頁面的子頁面(一個更改記錄的頁面,一個刪除記錄的頁面,等等)。

    你可以將jdbc嵌入到每一頁面中,以完成被請求的數據庫操作。然而,這一操作也會冒很大的風險,因為由于混合了jsp和jdbc而混合了整個程序──jdbc是基于sql。這也就是sql被封裝在jdbc,而jdbc也被封裝在jsp──這也足夠讓你暈頭轉向的。如果你選擇這一方法,你將會獲得你想要的功能,但一定要保證你的程序邏輯與數據庫訪問代碼的關系非常清晰,這一點格外小心。

    嵌入式jdbc

    jdbc api不會直接地與數據庫進行交流。其中的驅動程序完成的實際的連接,你可以在賣方的web站點上下載這些驅動程序。除此之外,還有四種jdbc的驅動程序類型,如果你決定使用jdbc,你需要正確地選擇最為適合你需要的那種類型。你將使用一個drivermanager類來處理基于驅動程序的連接。

    你可以使用一個名為getconnection的drivermanager方法來建立你的數據庫連接。你還可以使用它的url參數來識別數據庫:

    public static connection getconnection(jdbc:odbc:nameofdatabase)

    現在,告訴drivermanager有關驅動程序的信息(應該在你的classpath中):

    class.forname(“sun.jdbc.odbc.nameofjdbcdriver”);

    你已經將數據庫連接到jsp程序,但你仍然不能夠執行一個數據庫命令。解決這一點,你可以在jsp代碼中生成聲明以建立數據庫命令,如下所示:

    public statement createstatement(intresultsettype, intresultsetconcurrency)

    其中的參數能夠讓你控制從數據庫查詢得到的結果。當使用第一個參數時,可以在程序中看到結果;當使用第二個參數時,你可以通過查詢來更新數值(這是一個難以相信的功能,在以后的文章中值得進一步討論)。

    表a

    http://builder.com.com/5100-6387-5172666.html?tag=sc#listing

    alisting a顯示列舉了下兩種方法的復雜性。

    聲明(statement)就是sql命令。preparedstatement就是sql的聲明,你可以通過其中的參數來控制程序的過程。callablestatement是用于訪問sql存儲程序。你是否開始意識到,如果你沒有看到這些說明,你是否覺得這些聲明很復雜?請注意到,通過調用rollback方法,你可以撤除交易過程。

    如果你想完全使用這些數據庫訪問的方法,你唯一遺漏的還有:

    resultsetexecutequery(string sqlquery)

    (你可以使用executequery來完成以上過程。你也可以使用一個executeupdate來完成更新、插入和刪除)。你以上的聲明接口使你可以使用一些方法來執行sql聲明。resultset所做的就是訪問從查詢得到的數據,所以你可以在jsp程序中使用這些數據。

    通過將jsp程序分解成單一的、功能明顯的頁面,以及在任何給定頁面中執行一個單一的數據庫操作,可以很大程度地簡化你的數據庫操作,以及建立可以用于以后程序開發的頁面,即使你將sql嵌入到這些頁面的jdbc中。

    但是你還可以做更多的事情,以使得你的jsp數據庫訪問更加整潔和容易維護。在jsp代碼中嵌入jdbc,以及通過發送sql命令與數據庫通訊,這些過程都很好。但是,它要求在不能增加代碼復雜程度下,建立通過接口的sql命令的程序。當你的sql處理需要提高靈活性的時候,你可以進一步地分離你的數據庫接口代碼,以清潔你的jsp程序。在下面的文章中,我將告訴你如何實現這些過程。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张家川| 益阳市| 福贡县| 昭苏县| 凤山市| 长葛市| 双峰县| 宁都县| 都匀市| 兰坪| 来宾市| 象山县| 旌德县| 新安县| 沂南县| 蓬莱市| 光泽县| 永州市| 天门市| 孙吴县| 子洲县| 安陆市| 深州市| 英德市| 独山县| 宜良县| 宁强县| 共和县| 盘锦市| 南平市| 桂平市| 左云县| 陇南市| 如皋市| 新建县| 五家渠市| 澄迈县| 冀州市| 游戏| 贵南县| 石狮市|