眾所周知,在Java Web應用程序開發中,往往會綜合使用多個工具,如JSP和XML來配合實現某個功能。這主要是因為各個工具各有其特點。如XML比價容易控制Web的顯 示界面,而這正是JSP語言所缺乏的。現在剩下來的問題就是,怎麼讓系統知道,什麼時候該采用什麼樣的語言呢?這裡起到關鍵作用的就是標記。在這篇文章 中,筆者會給大家介紹一下SQL(SQL Server培訓 MySQL培訓 )標記。開發人員可以使用這個標記來完成跟數據庫(數據庫培訓 數據庫認證 )相關的工作。
一、 SQL標記的表現形式與作用。
我們在看Java的源代碼的時候,後續經常會看到如下的表示:
其實這就是一個典型的SQL標記。在JSP語言中,SQL標記主要用來方便的實現對數據的相關操作。如建立數據庫連接等等。JSP語言其主要用 來動態的獲取數據庫中的數據,為此在JSP語言中建立與數據庫的連接是必須的。同時,JSP語言不適宜完成比較復雜的運算,這些運算往往是放置在 JavBeans中來實現。故對於JSP語言來說,SQL標記主要完成的是數據庫連接管理、數據查詢等操作。
如上面這個
二、 SQL標記從數據庫中查詢數據。
SQL標記在JSP語言中使用的最廣泛的就是動態的從數據庫中獲取相關的數據。此時需要使用到的SQL標記是sql:query。這個標記主要 用來實現SQL語句訪問數據庫並返回一個結果。也就是說,一般的SQL查詢語句,如Select語句JSP語言是不認識的。開發人員往往將其封裝在SQL 標記中傳遞給數據庫。數據庫運行之後,SQL標記再將相關的結果傳遞給應用程序。在使用這個參數的時候,筆者認為需要注意以下幾點。
一是需要先建立數據庫的連接。SQL:Query標記主要用來實現SQL語句訪問數據庫並從數據庫中返回相關的結果。這也就是說,在使用這個標記的時候,必須要先建立起數據庫的連接。否則的話,系統就會報錯。
二是需要注意,在查詢語句中盡量采用參數。如現在從一個產品中查詢相關的數據。如果這個產品中有10萬條記錄,而在查詢語句中又沒帶相關的參 數,那麼此時數據庫就會返回全部的記錄。此時就會影響系統響應的速度。而且從用戶的角度講,他也沒有比較了解到全部的信息。故一般都會在 sql:query標記中帶上相關的參數。如果要實現這個需求的話,開發人員可以通過Param標記在sql:query中定義所需要采用的參數。不過參 數的定義一定要正確。而且所采用的數據庫表的名字一定要是表中已經存在的字段。特別需要注意的是,不同的數據庫可能對於字段大小寫是否敏感的要求是不同 的。如Oracle數據庫中,字段名稱大小寫是等價的。但是字段中保存的值大小寫是敏感的。為此在參數中傳遞字段名或者參數值的時候,需要考慮對於大小寫 的處理方式。
三是需要考慮,是否讓查詢語句帶上默認的參數。有時候用戶可能會偷懶,沒有在查詢界面上輸入參數。此時如果沒有默認參數的話,系統響應的速度就 可能會比較慢。數據庫管理員可能會多次提醒開發人員要采用默認參數來改善數據庫的查詢效率。如現在需要查詢產品信息表。在Web界面中一次可能只能夠顯示 50條記錄。在這種情況下,如果一次性的將數據從數據庫中查詢出來,會降低系統的性能。此時比較合理的做法是,給sql:query標記帶上一個默認的參 數。在用戶沒有輸入任何限制條件的話,sql語言從數據庫中每次查詢出的數據是50條記錄。當用戶需要更多的信息,點擊下一頁時再執行查詢語句一次,顯示 後面的50條記錄。
由於數據庫查詢優化很大部分依賴於查詢過程中的Where語句。在sql:query標記中則是通過Param標記來完成的。為此出於提升應用 系統性能的目的考慮,最好給SQL語句提供默認的參數。具體參數如何設置,就需要根據應用系統的實際情況了。如對於銷售訂單,可以默認顯示當天的訂單信 息。對於產品信息,則可以默認設置為顯示最近建立的50個產品信息,等等。