2.2.1 WAP工作原理 作為開放性的全球規范,WAP可以使移動用戶利用無線電設備方便地訪問或交互使用Internet應用信息和服務。前文述及,在Internet中,一般的協議要求發送大量的主要基於文本的數據,而標准Web內容很難在行動電話、尋呼機之類移動通信設備的小尺寸屏幕上顯示。同時,在用戶單手持機的情況下,屏幕間的內容切換也很不方便,並且HTTP和TCP/IP協議也沒有提供針對無線網路的非連續的信號覆蓋、長時間的延時以及對有限帶寬所進行的優化處理。在Internet中,HTTP協議不是以壓縮的二進制方式,而是以效率不高的文本格式發送標題和命令。因此,如果在無線電通信服務中使用普通 Internet協議,則會導致速度慢、成本高且難以大規模應用等問題,而且無線電傳輸的延時還會造成其他一些問題。 為了解決此類問題,WAP進行了很多優化處理。比如,利用二進制傳輸經過高度壓縮的數據,並對長延時和中低帶寬進行優化。WAP的會話功能可以處理不連續覆蓋的問題,並能自動地在IP不可用時改用其他優化協議來進行各種信息傳輸。通過使用WML語言編寫網頁,WAP還解決了Internet頁面不能在移動通信設備上顯示的問題。運用WML編輯的網頁可在手機的微瀏覽器上產生按鈕、圖示及超鏈接等功能,並可提供信息瀏覽、數據輸入、文本和圖像顯示、表格顯示等功能,大大減小了在移動設備上瀏覽網頁內容的復雜程度。 另外,WAP通過加強網路功能來彌補攜帶型移動設備本身的缺陷,工作時盡可能少地佔用移動通信設備的資源,比如CPU、內存等。與Web對Internet的作用一樣,WAP在應用層上隱藏了GSM的復雜性,給用戶提供了類似於普通Web頁面的友好性。WAP還通過使用類似於javascript的腳本語言WMLScript,來使移動通信設備先將信息進行處理後再發給伺服器。WAP還通過無線電話應用WTA來實現呼叫控制等諸多電話功能。 WAP標准下的移動終端均配備了一個微瀏覽器,該瀏覽器採用了一種類似於卡片組的工作方式。用戶可以通過卡片組來瀏覽移動網路運營商提供的各項Web業務。工作時,移動終端用戶首先選擇一項業務,該業務會將卡片組下載到移動終端,然後用戶就可以在卡片之間往返瀏覽,並可進行選排或輸入信息,以及執行所選擇的工作等。而且,瀏覽到的信息可以高速緩存,以便供以後使用,卡片組也可以高速緩存並可做成書簽以備快速檢索之用。該瀏覽器同時還對電子名片、日歷事件、在線地址簿和其他類型內容的格式提供了相應支持。 2.2.2 Internet與WAP的系統架構 為了說明WAP的系統架構,我們先來分析一下普通Internet中Web伺服器的工作方式和工作原理。 在圖2.2所示的WWW模型中,客戶向URL所指定的Web伺服器發出 一個請求,Web伺服器收到該請求後,經處理即返回相應的內容至客戶端。這個過程中,雙方是按照HTTP協議進行交互的。客戶端發出一個以HTTP開頭的URL請求時,Web伺服器端處理該請求的程序可能是CGI程序、靜態網頁,也可能是Servlet程序,甚至可能是其他伺服器端的程序,但它們都是以HTML格式將相應的內容返回給客戶,這樣,客戶就可以在瀏覽器上看到返回的具體內容。 圖2.2 WWW模型 WWW模型(圖2.2)還同時說明了建立普通應用環境所需的必要配置,主要包括以下幾個方面: (1) 標准命名模型。WWW上所有的伺服器和內容都是通過Internet標準的信息指定方法進行命名的。 (2) 內容鍵入。主要指URL的鍵入,WWW為此定義了若干特定的類型,允許網路瀏覽器在此基礎上進行正確的處理。 (3) 標准內容格式。所有的網路瀏覽器均支持一組標準的內容格式,包括超文本標記語言HTML、Java描述語言以及其他格式。 (4) 標准協議。標准網路協議允許任何網路瀏覽器連接到任何網路伺服器上。WWW體系中最常用的協議是HTTP協議。WWW的這種基本結構可使用戶方便地運行、獲取第三方的應用軟體及內容服務,並可使開發人員方便地為廣大客戶創建特定的應用軟體和內容服務。 下面我們再來分析WAP的網路架構。WAP網路架構由3部分組成,即WAP網關、WAP手機和WAP內容伺服器。其中,WAP網關起著「翻譯」協議的作用,是聯系GSM網與Internet的橋梁;WAP內容伺服器可以存儲大量信息,以供WAP手機用戶來訪問、瀏覽和查詢等;WAP手機為用戶提供了上網用的微瀏覽器及信息、命令的輸入方式等。圖2.3所示就是WAP模型的基本網路架構。當用戶從WAP手機鍵入想要訪問的WAP內容伺服器的URL後,信號經過無線網路,以WAP協議方式發送請求至WAP網關,然後經過「翻譯」處理,再以HTTP協議方式與WAP內容伺服器交互,最後WAP網關將伺服器返回的內容壓縮、處理成二進制流,並返回到客戶的WAP手機屏幕上。編程人員需要解決的問題是編寫WAP內容伺服器上的程序或者說WAP網頁,有關WAP網頁的編寫方法我們後面會詳細介紹的。 圖2.3 WAP模型 與WWW模型一樣,WAP也定義了一組旨在促進移動終端與WAP內容伺服器之間通信的必要配置,主要包括以下幾個方面: (1) 標准命名模型。WAP與WWW一樣,其伺服器和內容都是通過Internet標準的信息指定方法進行命名的。 (2) 內容鍵入。主要指URL的鍵入,WAP建立了與WWW一致的內容形式和類型,允許WAP用戶代理在此基礎上進行正確的處理。 (3) 標准內容格式。WAP基於WWW技術,所用微瀏覽器也支持一組標準的內容格式,包括WML及其腳本語言、圖像、日歷信息、電子名片甚至漲價幅度等的格式。 (4) 標准協議。WAP網路協議允許手機中的微瀏覽器通過WAP網關連接到WAP內容伺服器上,滿足了移動終端與網路伺服器之間傳輸信息的要求。 關於WAP的網路構架,我們還有幾點需要強調說明: (1) WAP的客戶端一般都是WAP移動設備,比如最常見的手機。它們通常由不同的公司生產,各自具有不同的特點,所以對WML和WMLScript 的解釋也有所不同。因此,將來具體開發時,還要參考各個廠家提供的技術資料,綜合考慮不同品牌、型號的WAP手機特點,如Nokia 7110、 Ericsson R380、Motorola L2000www等等,以使開發的網頁及應用能為絕大多數的手機所接受。 (2) 一般來說,用戶都希望WAP手機的屏幕足夠大,解析度足夠高,否則瀏覽網頁時不是太方便。然而由於不同型號WAP手機的屏幕大小並不完全一樣,所以開發人員需要考慮針對不同的手機製作不同的網頁,或製作含有多種選擇的網頁,以便使得客戶在瀏覽時同樣感到合適、方便和快捷。而且,由於各種手機對WML和 WMLScript的支持情況不太一樣,就像Internet Explore和Netscape之間的情況一樣,所以開發時更是要考慮不同手機的特殊情況。 (3) WAP手機上網中的安全性問題在開發中也需要考慮,如散射在空間中的電波會同時把用戶的口令、密碼等重要信息同時散射在空間中。本書後面將專門討論WAP手機上網的安全性問題。 (4) 網關在WAP系統的整個構架中有著十分關鍵的作用,它是連接客戶和服務的橋梁。網關可以在電信局一端(見圖2.4),也可以和網路伺服器集成在一起(見圖2.5)。圖2.4 網關在電信局一端時的結構圖 具體開發中,要根據這兩種情況採用和實施不同的設計思想及方法。一般來說,如果網關在電信局一端,那麼在服務端開發應用程序時與以前的網頁開發沒有太大的區別。只要符合通用網關介面CGI(Common Gateway Interface)標准,無論是採用Perl、C、C++、Basic、 Dephi或是專門的ISAPI、Serverlit等,開發方法都是一樣的。這種情況下開發人員擁有比較大的自由。
2. 三層架構詳細介紹
1、JDK (Java Development Kit)Java開發工具集
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,
有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE
以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java
應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
2、Java Workshop
3、NetBeans 與Sun Java Studio 5
NetBeans是開放源碼的Java集成開發環境(IDE),適用於各種客戶機和Web應用。
Sun Java Studio是Sun公司最新發布的商用全功能Java IDE,支持Solaris、Linux和Win
dows平台,適於創建和部署2層Java Web應用和n層J2EE應用的企業開發人員使用。
NetBeans是業界第一款支持創新型Java開發的開放源碼IDE。開發人員可以利用業界
強大的開發工具來構建桌面、Web或移動應用。同時,通過NetBeans和開放的API的模塊
化結構,第三方能夠非常輕松地擴展或集成NetBeans平台。
NetBeans3.5.1主要針對一般Java軟體的開發者,而Java One Studio5則主要針對企
業做網路服務等應用的開發者。Sun不久還將推出Project Rave,其目標是幫助企業的開
發者進行軟體開發。NetBeans 3.5.1版本與其他開發工具相比,最大區別在於不僅能夠
開發各種台式機上的應用,而且可以用來開發網路服務方面的應用,可以開發基於J2ME
的移動設備上的應用等。在NetBeans 3.5.1基礎上,Sun開發出了Java
One Studio5,為用戶提供了一個更加先進的企業編程環境。在新的Java
One Studio5里有一個應用框架,開發者可以利用這些模塊快速開發自己在網路服務方面
的各種應用程序。
4、Borland 的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於服
務器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB
(Enterprise JavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJB Java類,Jbuilder同時還簡化了EJ
B的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布
應用程序所必需的介面定義語言Interface Definition Language)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與Inprise Application Server緊密集
成,同時支持WebLogic Server,支持EJB 1.1和EJB 2.0,可以快速開發J2EE的電子商務
應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web 應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純J
ava語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持
各種JDK版本,包括J2ME/J2SE/J2EE。
JBuilder環境開發程序方便,它是純的Java 開發環境,適合企業的J2EE開發;缺點
是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較
吃內存,這時運行速度顯得較慢。
5、Oracle 的JDeveloper
Oracle9i JDeveloper(定為9.0版,最新為10g)為構建具有J2EE功能,XML和Web
services的復雜的,多層的Java應用程序提供了一個完全集成的開發環境。它為運用Ora
cle9i資料庫和應用伺服器的開發人員提供特殊的功能和增強性能,除此以外,它也有資
格成為用於多種用途Java開發的一個強大的工具。
Oracle9i JDeveloper的主要特點如下:
① 具有UML(Unified Modeling Language,一體化建模語言)建模功能。可以將業
務對象及e-business應用模型化。
② 配備有高速Java調試器(Debuger)、內置Profiling工具、提高代碼質量的工具
「CodeCoach」等。
③ 支持SOAP(Simple Object Access Protocol)「簡單對象訪問協議」、UDDI(U
niversal Description, Discovery and Integration)「統一描述、發現和集成協議」
、WSDL(Web Services Description Language)「WEB服務描述語言」等Web服務標准。
JDeveloper 不僅僅是很好的 Java 編程工具,而且是 Oracle Web 服務的延伸,支
持 Apache SOAP,以及 9iAS ,可擴充的環境和 XML 和 WSDL 語言緊密相關。Oracle9i
Jdeveloper完全利用Java編寫,能夠與以前的Oracle伺服器軟體以及其他廠商支持J2EE
的應用伺服器產品相兼容,而且在設計時著重針對Oracle9i,能夠無縫化跨平台之間的
應用開發,提供了業界第一個完整的、集成了J2EE和XML的開發環境,允許開發者快速開
發可以通過Web、無線設備及語音界面訪問的Web服務和交易應用,以往只能通過將傳統J
ava編程技巧與最新模塊化方式結合到一個單一集成的開發環境中之後才能完成J2EE應用
開發生命周期管理的事實,從根本上得到改變。缺點就是對於初學者來說,較復雜,也
比較難。
6、IBM的Visual Age for Java
Visual Age for Java是一個非常成熟的開發工具,它的特性以於IT開發者和業余的
Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS
連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean
創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的WebSphere Studio Advanced Edition及其包含的Visual
Age for Java Professional Edition軟體已全面轉向以Java為中心,這樣,Java開發人
員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理
、快速開發 JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站
點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速
移動代碼的選項。這就讓使用Studio的Web頁面設計人員和使用VisualAge的Java程序員
可以相互交換文件、協同工作。
Visual Age for Java支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而
修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與Visual Age緊
密結合的Websphere Studio本身並不提供源代碼和版本管理的支持,它只是包含了一個
內置文件鎖定系統,當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支
持諸如Microsoft Visual SourceSafe這樣的第三方源代碼控制系統。Visual Age for
Java完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代
碼就可以設計出一個典型的應用程序框架。Visual Age for Java作為IBM電子商務解決
方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合, 迅速完成從設
計、開發到部署應用的整個過程。
Visual Age for Java獨特的管理文件方式使其集成外部工具非常困難,你無法讓Vis
ual Age for Java與其他工具一起聯合開發應用。
7、BEA 的 WebLogic Workshop
BEA WebLogic Workshop是一個統一、簡化、可擴展的開發環境,使所有的開發人員
都能在 BEA WebLogic Enterprise Platform之上構建基於標準的企業級應用,從而提高
了開發部門的生產力水平,加快了價值的實現。
WebLogic Workshop除了提供便捷的Web服務之外,它能夠用於創建更多種類的應用
。作為整個BEA WebLogic Platform的開發環境。不管是創建門戶應用、編寫工作流、還
是創建Web應用,Workshop 8.1都可以幫助開發人員更快更好地完成。
WebLogic Workshop的主要特點如下:
① 使 J2EE 開發切實可行,提高開發效率
BEA WebLogic Workshop 使開發人員遠離 J2EE 內在的復雜性,集中精力專注業務
邏輯,無須操心單調乏味的基礎結構代碼。這種創新意味著,已被企業驗證的 J2EE 的
強大功能,最終被大多數不熟悉 Java 和 J2EE 的應用開發人員所掌握,從而使 IT 部
門的工作效率提高一個數量級。
可視化設計器以及直觀的概念,如事件、屬性和控制項等,實現了基於事件的開發。W
orkshop 簡化的程序設計模型,使開發人員不必掌握復雜的 J2EE API 和面向對象的程
序設計原理。所有開發人員,包括 J2EE 專家和具有可視化和過程化語言技能的應用開
發人員在內,都可以共同工作在 BEA WebLogic Enterprise Platform 之上。Workshop
的可視化開發環境,創建帶有代碼注釋的標准 Java 文件,用來說明由運行時框架實施
的企業級需求。J2EE 和其他高級開發人員,藉助功能強大的代碼編輯功能,可以訪問
Java 源代碼,從而彌補了可視化設計器的不足。
② 構建企業級應用
通過在可伸縮、安全可靠的企業級架構上實施各種應用,BEA WebLogic
Workshop 大大降低了開發風險。而且,所有應用的創建都使用標準的 J2EE 組件,既保
護了您的技術投資,又保持了最大的靈活性。
BEA WebLogic Workshop 運行框架,是統一整個架構的匯聚層,使單一、簡化的程序設
計模型擴展到所有的 BEA WebLogic Enterprise Platform 應用類型。通過解釋設計時
創建的注釋代碼,運行時框架可以實現必要的 J2EE 組件,並且提取出與 J2EE 應用開
發有關的所有底層細節。
③ 降低 IT 復雜性
BEA WebLogic Workshop 提供各種 Java 控制項,使得與 IT 資源的連接更輕而易舉
。另外,在構建任何 BEA WebLogic Platform 的應用中,Java 控制項不僅可擴展而且完
全相同。這種強大、有效的方法能夠:降低 IT 技術的復雜性,優化信息的可用性,推
動包含"最佳業務方案"的可重用服務的開發,使開發人員能以更低的成本、更短的時間
實現更大的產出。
利用 BEA WebLogic Workshop,任何開發人員都能以最大的生產效率,構建各種
Web 服務、Web 應用、門戶和集成項目。BEA WebLogic Workshop是BEA的產品戰略核心
,它幫助客戶接觸和利用面向服務架構(SOA)的強大功能。BEA Weblogic Workshop
8.1極大簡化了當前實際企業集成環境中企業級應用和服務的構建,並成為全面支持關鍵
企業級應用(如非同步、真正松耦合和粗粒度消息傳送等)的自然選擇。它的缺點就是過於
復雜,對於初學者來說,理解起來較為困難。
8、WebGain 的Visual Cafe for Java
Visual Cafe 是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和M
icrosoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的
Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。
在修改後進行編譯基繼續進行調試時,Visual Cafe會自動將文件存檔,使用Visual
Cafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制
方式比正常的JDK小Visual Cafe為所指定的關系自動生成或更新必要的Java代碼。利用V
isual Cafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而
不必再編寫源代碼。Visual Cafe還提供了一個擴充的源代碼開發工具集。
Visual Cafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視
圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對
源代碼的改變自動更新可視化視圖。
Visual Cafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工
具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要
一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開
始創建自己的應用。Visual Cafe提供了非常全面的用戶指南,它對最開始的安裝到創建
第一個Java應用和Applet都提供了全面的幫助,Visual Cafe將自動生成所指明關系的必
要Java代碼。Visual Cafe可以在Windows 95和Windows NT平台下運行,Symantec公司為
Java開發工作提供一個在Macintosh操作系統下可以運行的RAD工具。Visual Cafe編譯器
速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難
。
9、Macromedia的JRUN
Macromedia公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由Jav
a Servlets和JavaServer Pages編寫的伺服器端Java應用。JRun是第一個完全支持JSP
1.0 規格書的商業化產品,全球有超過80,000名開發人員使用JRun在他們已有的Web服務
器上添加伺服器端Java的功能。其中Web伺服器包括了Microsoft IIS,Netscape
Enterprise Server,Apache等。
JRun是開發實施伺服器端Java的先進引擎。如果我們希望在我們的Web應用中添加服
務器端Java功能,那麼JRun將成為我們的正確選擇。
JRun目前有3個版本,它是第一個支持Java Server Pages(JSP)規格書1.0的商業化
產品。JSP是一種強大的伺服器端技術,它是用於創建復雜Web應用的一整套快速應用開
發系統。JRun可以使我們開始開發並測試Java應用。它最多接受5個並發的連接並且包括
全部Java Servlet API,支持JavaServer Pages(JSP),支持所有主要的Web
servers和計算機平台。 JRun Pro能夠在生產環境下承受大訪問量的負載,幫助我們實
施應用、服務或Web站點(包括內聯網)。JRun Pro 支持無限量並發式連接運行多個Jav
a虛擬機,包括多個並發的Java虛擬機(JVM)。提供一個遠程管理applet以及一個遠程
可再分布式的管理applet。JRun Pro Unlimited包括了所有JRun Pro的功能,除次以外
,還可以運行無限量的,並發的JVM。
JRun依靠其內置的JRun Web Server可以單獨運行。使用伺服器端Java,用戶可以開
發出復雜的商業應用系統。最重要的一點是,由於servlets的平台獨立性,以及更加簡
單的開發、更快速的實施、更經濟的維護成本,它是CGI(Common Gateway
Interface)或Perl scripts的極佳的替代產品。缺點就是對於初學者來說,較復雜,也
比較難。
10、JCreator
JCreator 是一個Java程序開發工具,也是一個Java集成開發環境(IDE)。無論你
是要開發Java應用程序或者網頁上的Applet元件都難不倒它。在功能上與Sun公司所公布
的JDK等文字模式開發工具相較之下來得容易,還允許使用者自訂義操作窗口界面及無限
Undo/Redo等功能。
JCreator為用戶提供了相當強大的功能,例如項目管理功能,項目模板功能,可個
性化設置語法高亮屬性、行數、類瀏覽器、標簽文檔、多功能編繹器,向導功能以及完
全可自定義的用戶界面。通過JCreator,我們不用激活主文檔而直接編繹或運行我們的J
AVA程序。
JCreator能自動找到包含主函數的文件或包含Applet的Html文件,然後它會運行適
當的工具。在JCreator中,我們可以通過一個批處理同時編繹多個項目。JCreator的設
計接近Windows界面風格,用戶對它的界面比較熟悉。其最大特點是與我們機器中所裝的
JDK完美結合,是其它任何一款IDE所不能比擬的。它是一種初學者很容易上手的java開
發工具,缺點是只能進行簡單的程序開發,不能進行企業J2EE的開發應用。
11、Microsoft VJ++
Visual J++ 是Microsoft 公司推出的可視化的Java 語言集成開發環境(IDE),為Ja
va 編程人員提供了一個新的開發環境,是一個相當出色的開發工具。無論集成性、編譯
速度、調試功能、還是易學易用性,都體現了Microsoft 的一慣風格。Visual J++ 具有
下面的特點:
1)Visual J++ 把Java 虛擬機(JVM)作為獨立的操作系統組件放入Windows,使之從
瀏覽器中獨立出來。
2)Microsoft 的應用基本類庫(AFC,Application Foundation Class Library)對SU
N 公司的JDK 作了擴展,使應用基本類庫更加適合在Windows 下使用。
3) Visual J++ 的調試器支持動態調試,包括單步執行、設置斷點、觀察變數數值
等。
4) Visual J++ 提供了一些程序向導(Wizards)和生成器(Builders),它們可以方
便地幫助用戶快速地生成Java 程序,幫助你在自己的工程中創建和修改文件。
5) Visual J++ 界面友好,其代碼編輯器具有智能感知、聯機編譯等功能,使程序
編寫十分方便。Visual J++ 中建立了Java 的WFC,這一新的應用程序框架能夠直接訪問
Windows 應用程序介面(API),使你能夠用Java 語言編寫完全意義上的Windows 應用程
序。
6)Visual J++ 中表單設計器的快速應用開發特性使用WFC 創建基於表單的應用程
序變得輕松、簡單。通過WFC 可以方便地使用ActiveX 數據對象(ADO,ActiveX Data
Objects)來檢索數據和執行簡單數據的綁定。通過在表單設計器中使用ActiveX 數據對
象,可以快速地在表單中訪問和顯示數據。
Visual J++能結合微軟的一貫的編程風格,很方便進行Java 的應用開發,但它的移
植性較差,不是純的Java 開發環境。
12、Eclipse
Eclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美
元的源代碼組建了Eclipse聯盟,並由該聯盟負責這種工具的後續開發。集成開發環境(I
DE)經常將其應用范圍限定在「開發、構建和調試」的周期之中。為了幫助集成開發環境
(IDE)克服目前的局限性,業界廠商合作創建了Eclipse平台。Eclipse允許在同一IDE中
集成來自不同供應商的工具,並實現了工具之間的互操作性,從而顯著改變了項目工作
流程,使開發者可以專注在實際的嵌入式目標上。
Eclipse框架的這種靈活性來源於其擴展點。它們是在XML中定義的已知介面,並充
當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字元串,到一個Jav
a類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse
插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的介面外,插件不知道它
們通過擴展點提供的服務將如何被使用。
利用Eclipse,我們可以將高級設計(也許是採用UML)與低級開發工具(如應用調試器
等)結合在一起。如果這些互相補充的獨立工具採用Eclipse擴展點彼此連接,那麼當我
們用調試器逐一檢查應用時,UML對話框可以突出顯示我們正在關注的器件。事實上,由
於Eclipse並不了解開發語言,所以無論Java語言調試器、C/C++調試器還是匯編調試器
都是有效的,並可以在相同的框架內同時瞄準不同的進程或節點。
Eclipse的最大特點是它能接受由Java開發者自己編寫的開放源代碼插件,這類似於
微軟公司的Visual Studio和Sun微系統公司的NetBeans平台。Eclipse為工具開發商提供
了更好的靈活性,使他們能更好地控制自己的軟體技術。Eclipse聯盟已經宣布將在2004
年中期發布其3.0版軟體。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多
,實際上實用它java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比
較困難。
13、Ant
Another Neat Tool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於
(Unix)C中的make ,但沒有make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟
件時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)
的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)
。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;
然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同
了。與基於shell命令的擴展模式不同,Ant用Java的類來擴展。(用戶)不必編寫shell
命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現
了一個實現了特定Task介面的對象來運行。
Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選task與Ant
的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身
就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除
了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些
。Ant是Apache提供給Java開發人員的構建工具,它可以在Windows OS和Unix OS下運行
,它不僅開放源碼並且還是一個非常好用的工具。Ant是Apache Jakarta中一個很好用的
Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant
是專用於Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現
了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程
序開發。
14、IntelliJ
Intellij IDEA是一款綜合的Java 編程環境,被許多開發人員和行業專家譽為市場
上最好的IDE。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持J2
EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創新的GUI設計器。IDEA把Java開發人
員從一些耗時的常規工作中解放出來,顯著地提高了開發效率。具有運行更快速,生成
更好的代碼;持續的重新設計和日常編碼變得更加簡易,與其它工具的完美集成;很高
的性價比等特點。在4.0版本中支持Generics,BEA WebLogic集成,改良的CVS集成以及G
UI設計器。
IntelliJ IDEA能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,並且
與Java結合得相當好。不同的工具窗口圍繞在主編程窗口周圍,當滑鼠點到時即可打開
,無用時也可輕松關閉,使用戶得到了最大化的有效屏幕范圍。以技術為導向的IDEA集
成了調試器,支持本地和遠程的調試,即使我們需要修改一些設置上的東西使我們的工
作順利進展。另外,它還提供了通常的監視,分步調試以及手動設置斷點功能,在這種
斷點模式下,我們可以自動地在斷點之外設置現場訪問,甚至可以瀏覽不同的變數的值
。IDE支持多重的JVM設置,幾個編譯程序和Ant建造系統,並且,它使得設置多重的自定
義的類途徑變得簡單。
IntelliJ Idea是一個相對較新的Java IDE。它是Java開發環境中最為有用的一個。
高度優化的IntelleJ Idea使普通任務變得相當容易,Idea支持很多整合功能,更重要的
使它們設計的好容易使用。Idea支持XML中的代碼實現,Idea同時還會校正XML,Idea支
持JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能),同時
支持JSP調試;支持EJB,盡管它不包括對個別應用伺服器的特殊支持。Idea支持Ant建立
工具,不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快
捷鍵。在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。Intel
liJ IDEA 被稱為是最好的JAVA IDE開發平台,這套軟體就是以其聰明的即時分析和方便
的 refactoring 功能深獲大家所喜愛。缺點是較復雜,對初學者來說,理解起來比較困
難。
小結
現在常用的Java項目開發環境有:JBuilder、VisualAge for Java、Forte for
Java, Visual Cafe、Eclipse、NetBeans IDE、JCreator +J2SDK、jdk+記事本、EditPl
us+ J2SDK等等。一般開發J2EE項目時都需要安裝各公司的應用伺服器(中間件)和相應
的開發工具,在使用這些開發工具之前,我們最好能熟知這些軟體的優點和缺點,以便
根據實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發的,各有特點,
因此,選工具主要的依據自己將要從事的領域是什麼,而不是盲目的認為那種工具好,
那種工具不好。最後希望大家都能找到自己合適的java 開發工具
3. 學習.net 上學期間實現功能都是在按鈕中寫代碼,現在在培訓中心學了三層架構之後不懂代碼怎麼寫了,不...
三層只是一種思想,就是把代碼都分開,DAL(數據訪問層)專門用來操作資料庫,BLL(業務邏輯層)專門用來入理一些邏輯,UI層,就是Web的界面了,主要用來把值傳給BLL,然後BLL再根據實際的邏輯,調用DAL層裡面的方法
開發順序:先寫 Model(模型層,一般對應資料庫欄位),DAL,BLL,UI,一般還會再加一個通用的助手層(CommonUtility),比如SqlHelper.cs,PageHelper.cs 等等。
引用順序: UI 引用 BLLModel(如果有CommonUtility,也引用)
BLL層引用 Model,DAL(如果有CommonUtility,也引用)
DAL層引用順序 Model (如果有CommonUtility,也引用)
記住 ,我們寫代碼是反著寫的,調用是正著調用,就是說先寫底層,才能給頂層的調用。
4. 怎麼使用三層架構
學ASP.NET都知道它的最經典的架構是三層架構,也是目前應用得最廣泛的一種架構。以前說起三層架構大家都知道MVC架構,這是html開發中用得比較多的,現在AJAX主要就是用這種架構。大家ASP.NET的三層是指數據訪問層,業務邏輯層和表示層,而且都知道數據訪問層是用來訪問數據的,業務邏輯層是用來處理一些系統的業務邏輯的,表示層就是把內容呈現出來給用戶,與用戶進行交互的。劃分三層的好處就是每一層都是獨立的,修改其中一層一般不會影響其他層的代碼,這樣就大大的方便了日後的維護和升級。它最大的缺點是架構和編碼都比較復雜,而且對性能的提高沒有任何幫助,反而還可能會降低執行效率。
有時候真的覺得「三層」編起來挺麻煩的,在ASP.NET 2.0里,訪問數據和顯示出來只要拖兩個控制項就可以了(AccessDataSource/SQLDatasource和GridView),幾分鍾一個頁面就出來了,而且還具備了修改中,刪除,分頁,排序等功能。而用三層架構就麻煩多了,先要寫數據訪問層的代碼,接著寫業務邏輯層的代碼(要調用數據層的方法),最後才是表示層,也就是頁面的設計,還有調用業務邏輯層的代碼讀取數據。(注意:表示層是絕對不會訪問數據層的內容,只能通過業務層。業務層在這里是連接它們的橋梁。所以說業務層是最重要的一層)既然這樣為什麼還要用三層呢?前面提到的一層架構的一個很大的問題就是前台和後台代碼沒有很好的分開,不利於分工,第二,不利於日後的維護和升級。如果是個人主頁或者是一些一個人完成的小系統用一層還是挺方面的。如果是一些比較大的系統,特別是企業級的應用,就非用三層甚至n層不可了。一般三層就很夠了,再劃分更多隻會增加設計和編碼的難度。
那到底怎麼去分層呢?怎麼樣分層就符合三層架構原則呢?這是很多剛入門的人經常問的問題。我翻了很多本案例書,可惜很多都是一層或者是兩層架構的,絕少三層的。後來研究了petshop4.0和下了一些國外的資料來看才開始對如何分層有點了解。我總結了一下主要有以下三種分層方式:
一:數據層不包含任何代碼,只有資料庫,還有相關的存儲過程。
這種模式下,數據層看起來就變得很簡單了。只包含你建立的資料庫,和一些存儲過程(注意是存儲過程)。其實這些存儲過程的建立也是相當復雜的(我以後會專門寫一篇這方面的文章),因為它們可以完成除數據訪問外的其他一些很強大的功能,如分頁,實現搜索演算法等。數據訪問的邏輯就都放在業務層,當然業務層還包含其他一些邏輯代碼。我們來看一個示例,假設資料庫里有一個表BOOKS(書),建立一個存儲過程GetAllBooks,用來讀取書的信息,這樣在業務層里編一個方法GetBookS()和一個公用資料庫訪問類,GetBooks()就通過資料庫訪問類打開連接,執行在存儲過程,返回數據(返回類型可以是DataTable,DataSet,DataReader或者實體類)。業務層單獨編譯成一個或者幾個DLL文件。接著就是表示層了,表示層通過調用GetBookS()返回數據綁定在相關的控制項里。務層的方法都是在表示層調用。一般來說book.aspx和book.aspx.cs都是表示層的內容。所有前台的設計,相關控制項,數據緩存都是屬於表示層。
二:數據層還包含所有公共數據訪問代碼。
這種模式和前一種差別不大,主要是把數據訪問代碼六到數據層。這樣可以很方面實現對多資料庫的支持。業務邏輯層直接調用數據層的相關訪問數據的代碼,完全不必了解底層是什麼資料庫。其他和前一種沒什麼分別。
三:所有數據讀取都放在數據層。
這種模式下像前面所述的GetBooks()方法都是放在數據層,在業務層再定義一個GetBookS()方法以供表示層調用。這種模式下業務層不但不必了解底層是什麼資料庫,而且連資料庫的結構都不必了解了。這可以說是最標準的三層架構了,在Microsoft的PetShop 4.0里就是用這種模式。
我是從「上海全鼎軟體學院」畢業的————————
5. 三層架構中sql語句寫在哪層
三層是指:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)
資料庫語句 寫在 數據訪問層(DAL)
6. 什麼是三層架構各層的主要功能及相互關系有哪些
一般講到三層架構,其實就是將整個業務應用劃分為表示層、業務邏輯層、數據訪問層等。
數據訪問層DAL,業務邏輯層BLL。表現層UI (界面類的)【 model(數據模型層,主要放的我就不用說了。一般都是資料庫中的。) ,】model是貫穿的。所有的都引用它,bll引用dal ui引用dal 和bll 然後就是調用
三層體系結構,是在客戶端與資料庫之間加入了一個「中間層」,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三台機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一台機器上。
普通三層:數據訪問層DAL:用於實現與資料庫的交互和訪問,從資料庫獲取數據或保存數據到資料庫的部分。 業務邏輯層BLL:業務邏輯層承上啟下,用於對上下交互的數據進行邏輯處理,實現業務目標。 表示層UI:主要實現和用戶的交互,接收用戶請求或返回用戶請求的數據結果的展現,而具體的數據處理則交給業務邏輯層和數據訪問層去處理。業務實體Model:用於封裝實體類數據結構,一般用於映射資料庫的數據表或視圖,用以描述業務中客觀存在的對象。Model分離出來是為了更好地解耦,為了更好地發揮分層的作用,更好地進行復用和擴展,增強靈活性。 通用類庫Common:通用的輔助工具類
工程模式:簡單工廠模式又稱為靜態工廠方法(Static Factory Method)模式,屬於類的創建型模式,通常根據一個條件(參數)來返回不同的類的實例。
工廠角色(Creator)
是簡單工廠模式的核心,它負責實現創建所有具體產品類的實例。工廠類可以被外界直接調用,創建所需的產品對象。
抽象產品角色(Proct)
是所有具體產品角色的父類,它負責描述所有實例所共有的公共介面。
具體產品角色(Concrete Proct)
繼承自抽象產品角色,一般為多個,是簡單工廠模式的創建目標。工廠類返回的都是該角色的某一具體產品。
通常情況下,客戶端不直接與資料庫進行交互,而是通過COM/DCOM通 訊與中間層建立連接,再經由中間層與資料庫進行交換.
完善的三層結構的要求是:修改表現層而不用修改邏輯層,修改邏輯層而不用修改數據層 否則你的應用是不是多層結構,或者說是層結構的劃分和組織上是不是有問題就很難說. 不同的應用有不同的理解,這是一個概念的問題.
MVC系統中的模型從概念上可以分為兩類――系統的內部狀態和改變系統狀態的動作。模型是你所有的商業邏輯代碼片段所在。本文為模型提供了業務實體對象和業務處理對象:所有的業務處理對象都是從ProcessBase類派生的子類。業務處理對象封裝了具體的處理邏輯,調用業務邏輯模型,並且把響應提交到合適的視圖組件以產生響應。業務實體對象可以通過定義屬性描述客戶端表單數據。所有業務實體對象都EntityBase派生子類對象,業務處理對象可以直接對它進行讀寫,而不再需要和request、response對象進行數據交互。通過業務實體對象實現了對視圖和模型之間交互的支持。實現時把"做什麼"(業務處理)和"如何做"(業務實體)分離。這樣可以實現業務邏輯的重用。由於各個應用的具體業務是不同的,這里不再列舉其具體代碼實例。
MVC(模型Model-視圖View-控制器Controller)是一種設計模式,我們可以用它來創建在域對象和UI表示層對象之間的區分。 同樣是架構級別的,相同的地方在於他們都有一個表現層,但是他們不同的地方在於其他的兩個層。 在三層架構中沒有定義Controller的概念。這是我認為最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建程序最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVC中Model的概念是不一樣的,「三層」中典型的Model層是以實體類構成的,而MVC里,則是由業務邏輯與訪問數據組成的。
在ASP NET中的MVC架構編寫的,具有極其良好的可擴展性。它可以輕松實現以下功能: ①實現一個模型的多個視圖;②採用多個控制器;③當模型改變時,所有視圖將自動刷新;④所有的控制器將相互獨立工作。這就是MVC架構的好處,只需在以前的程序上稍作修改或增加新的類,即可輕松增加許多程序功能。以前開發的許多類可以重用,而程序結構根本不再需要改變,各類之間相互獨立,便於團體開發,提高開發效率。下面討論如何實現一個模型、兩個視圖和一個控制器的程序。其中模型類及視圖類根本不需要改變,與前面的完全一樣,這就是面向對象編程的好處。對於控制器中的類,只需要增加另一個視圖,並與模型發生關聯即可。該模式下視圖、控制器、模型三者之間的示意圖如圖2所示。同樣也可以實現其它形式的MVC例如:一個模型、兩個視圖和兩個控制器。從上面可以看出,通過MVC架構實現的應用程序具有極其良好的可擴展性,是ASP NET面向對象編程的未來方向。
MVC的不足體現在以下幾個方面:(1)增加了系統結構和實現的復雜性。對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,並可能產生過多的更新操作,降低運行效率。(2)視圖與控制器間的過於緊密的連接。視圖與控制器是相互分離,但確實聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。3)視圖對模型數據的低效率訪問。依據模型操作介面的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。(4)目前,一般高級的界面工具或構造器不支持MVC架構。改造這些工具以適應MVC需要和建立分離的部件的代價是很高的,從而造成使用MVC的困難。
三層架構是將代碼按其作用分成三部分,每部分解決自己負責的流程. 三層架構的功用之處,在於駕馭大型web程序的結構,使之便於管理和擴展.
在設計UI的時候,我們不需要關心其中的邏輯和數據問題,只需要空出對應的位置,用於放置數據. 在設計和修改的時候,要解決的只是HTML的結構,代碼看起來干凈利落,做起來也是干凈利落.
UI直接將程序邏輯的任務丟給BLL,BLL就開始構建具體的實現細節.BLL的創建依賴於業務. 例如一個文章系統,BLL_Aticle就表示它是用於對文章的處理的.BLL_Aticle可以提供給UI一個文章列表的recordset,顯示在UI的預留位置. 當BLL_Aticle需要從資料庫中獲取數據的時候,就將任務丟給DAL層
DAL層專門負責和資料庫打交道,它從BLL獲取參數,組織一個有效的SQL,建立資料庫連接,執行SQL進行更新或獲取,將返回的數據交給BLL.
每一部分的業務都集中於一個UI-BLL-DAL的鏈中,上下清晰瞭然. 至於是怎樣的便於管理和擴展,將在後面結合實例進行分析.
復雜的生命形式必有復雜的生存法則,若想在自己的項目中應用好三層架構,需要多用點心體會其中的應用法則.
我對三層架構的理解還不夠深,這些文章能算是拋磚引玉就不錯了.大家在閱讀當中不要局限於我所構思的法則,要多向具體的應用中去實踐,根據具體情況,尋出自己的法則. 有所感悟,就記得寫下來,這種感悟是進步的契機,但必然不是最終的結果.有了感悟就拿去應用,可以發現它的優劣,繼續完善
三層架構比雙層或單層結構都有更大的優勢。三層結構適合群體開發,每人可以有不同的分工,協同工作使效率倍增。開發雙層或單層應用時,每個開發人員都應對系統有較深的理解,能力要求很高,開發三層應用時,則可以結合多方面的人才,只需少數人對系統全面了解,從一定程度工降低了開發的難度。
三層架構屬於瘦客戶的模式,用戶端只需一個較小的硬碟、較小的內存、較慢的CPU就可以獲得不錯的性能。相比之下,單層或胖客戶對面器的要求太高。
三層架構的另一個優點在於可以更好的支持分布式計算環境。邏輯層的應用程序可以有多個機器上運行,充分利用網路的計算功能。分布式計算的潛力巨大,遠比升級CPU有效。
三層架構的最大優點是它的安全性。用戶端只能通過邏輯層來訪問數據層,減少了入口點,把很多危險的系統功能都屏蔽了。
7. ASP.NET使用三層架構後後台功能代碼如何寫
其實和普通的一樣。
在數據層各寫好
增刪查改
的方法。
在邏輯層也有增刪查改的方法,邏輯層方法裡面調用對應數據層里的方法。
頁面呢,
需要刪除的,就調用邏輯層刪除的方法,以此類推,頁面層需要做什麼就調用邏輯層對應的方法。
就這樣!
8. 怎樣在三層架構的邏輯層中增加添加功能
首先你要明白三層結構各個層次的作用,UI層只是顯示數據,BLL業務邏輯層處理一般的業務邏輯,而Dll數據管理層是和資料庫打交道的。比如這是一個存在於DLL中的用戶增加方法:
/// <summary>
/// 用戶注冊
/// </summary>
/// <param name="list">注冊信息</param>
/// <returns></returns>
#region IUserData 成員
public int RegisterUser(ArrayList list)
{
int result = 0;
using (conn = new SqlConnection(DBHelper.connectionString)){
cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open ();
cmd.CommandText = "RegisterUser";
cmd.CommandType = System.Data.CommandType.StoredProcere;
//為存儲過程參數賦值
SqlParameter [] para = new SqlParameter []{
new SqlParameter ("@LoginId",list[0].ToString()),
new SqlParameter ("@LoginPwd",list[1].ToString()),
new SqlParameter ("@Name",list[2].ToString ()),
new SqlParameter ("@QQ",list[3].ToString ()),
new SqlParameter ("@Mail",list[4].ToString())
};
cmd.Parameters .AddRange(para);
result = cmd.ExecuteNonQuery();
return result;
}
}
#region IUserData 成員
在業務邏輯直接調用
/// <summary>
/// 用戶注冊
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static bool RegisterUser(ArrayList list)
{
if (BlogFactory.AbsFactory.CreateFactory().UserData().LoginIdExists(list[0].ToString()))//判斷用戶是否存在
{
return false;
}
else
{
BlogFactory.AbsFactory.CreateFactory().UserData().RegisterUser(list);//實現添加
return true;
}
}
以此往上各個層次分工明細
/// <summary>
/// 完成按鈕,注冊
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void IMBRegister_Click(object sender, ImageClickEventArgs e)
{
ArrayList list = new ArrayList(5);
list.Add(this.txtLoginId.Text);
list.Add(this.txtLoginPwd.Text);
list.Add(txtName.Text);
list.Add(txtQQ.Text);
list.Add(txtEmail.Text);
if (BlogBLL.UserTransfer.RegisterUser(list))
{
Response.Redirect("UserDefault.aspx");
}
else
{
Response.Redirect("Register.aspx", false);
}
}
9. JAVA三層架構裡面的main方法寫在哪裡有main方法嗎
如果自己寫一般的程序,隨便寫一個啟動類,定義main方法。如果是web項目,tomcat等web伺服器已經封裝好了啟動類,無需自己寫,springBoot的啟動類就是xxxxApplication,裡面有main方法
10. 三層架構數據層的方法,到底應該怎麼寫
你可以在你的數據層寫一個公共類然後定義一些變數,給變數加上讀寫屬性。
public Class test
{
int _ID;
public int ID{get;set;}
string _Name;
public string Name{get;set;}
}
然後你的查詢方法改成這樣
public DataSet GetInfo(test t)
{
string sql="select * from user ";
string where="where 1=1";
if(t.ID>0)
{
where +=" and ID="+t.ID;
}
if(t.Name!="")
{
where+=" and Name="+t.Name;
}
sql+=where;
//這里就是資料庫的一些連接和使用我就不寫了
}
然後在你查詢的時候這樣用就可以啦
比如你在index.aspx頁面要用
test t=new test();
t.ID=1;
DataSet ds=GetInfo(t);
這樣就可以啦