




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGEIII目錄第1章緒論 1課題的研究背景、內(nèi)容和意義 1第2章主要技術概述 32.1B/S結構 32.2JSP技術 42.2.1JSP技術的強勢 52.2.2JSP技術的弱勢 52.3SQLServer2000數(shù)據(jù)庫 52.4JDBC數(shù)據(jù)庫連接 62.4.1JDBC接口 72.4.2JDBC的驅動程序 72.5TOMCAT應用服務器 8第3章需求分析 103.1.1用戶及主要操作功能 103.1.2系統(tǒng)角色管理模塊 10包括系統(tǒng)管理員模塊和會員模塊 103.1.3網(wǎng)絡小說管理模塊 103.1.4公告模塊 113.2系統(tǒng)性能需求分析 113.3開發(fā)環(huán)境及開發(fā)工具 11第4章概要設計 124.1系統(tǒng)的體系結構 124.2系統(tǒng)功能結構設計 124.2.1管理員模塊 144.2.2會員模塊 144.3系統(tǒng)流程圖 154.3.1會員管理 154.4數(shù)據(jù)庫設計 16第5章詳細設計 195.1公告管理模塊 195.1.1瀏覽公告 195.1.2發(fā)布公告 205.1.3管理公告 215.2會員模塊 235.2.1會員注冊 235.2.2點券充值 25點券充值的核心代碼如下: 255.2.3搜索和下載小說 275.3小說管理模塊 295.3.1網(wǎng)絡小說類別的管理 295.3.2網(wǎng)絡小說管理 315.3留言版模塊 335.4通用模塊 345.4.1登錄、修改個人信息及注銷退出 355.4.2數(shù)據(jù)庫的連接接 355.5小結 37第6章系統(tǒng)測試 386.1公告管理模塊 386.1.1公告的瀏覽 386.1.2公告的添加 386.1.3公告的編輯、刪除 386.2會員管理模塊 386.2.1成員注冊 386.2.2點券充值 396.2.3搜索小說 396.3小說管理模塊 396.3.1網(wǎng)絡小說類別的管理 396.3.2網(wǎng)絡小說管理 396.3.3留言版 39第7章結論與展望 40參考文獻 41致謝 42石家莊鐵道大學畢業(yè)設計PAGE36第1章緒論課題的研究背景、內(nèi)容和意義網(wǎng)絡小說代表人們所閱讀的數(shù)字化出版物,從而區(qū)別于以紙張為載體的傳統(tǒng)出版物,網(wǎng)絡小說是利用計算機技術將一定的文字、圖片、聲音、影像等信息,通過數(shù)碼方式記錄在以光、電、磁為介質的設備中,借助于特定的設備來讀取、復制、傳輸,已經(jīng)為人們所熟悉。眾所周知,自20世紀80年代以來,電子圖書的出現(xiàn)和迅速發(fā)展已經(jīng)引起社會各界的普遍關注。在信息社會化和社會信息化的今天,電子圖書極大地刺激了傳統(tǒng)圖書出版、發(fā)行市場,改變了讀者閱讀習慣,給人類社會文化和社會生活帶來了深刻的變革。一般情況下,閱讀電子圖書主要有兩種形式,一種是在線或在PC機上閱讀,即通過臺式電腦或筆記本電腦直接閱讀網(wǎng)站提供的免費或付費的電子圖書,也可以下載到本地計算機上閱讀;另一種是離線或脫機閱讀,即通過使用專用的手持閱讀器閱讀。手持閱讀器具有體積小,分量輕,容易攜帶的特點,不受時間、地點、環(huán)境的限制。而且,隨著閱讀器材技術、內(nèi)容、格式的日臻完善,電子圖書必將展示其更為廣闊的發(fā)展空間。對比傳統(tǒng)的圖書出租的書店,網(wǎng)絡小說閱讀平臺有許多的優(yōu)越性。對閱讀者來說,方便了大家閱讀圖書的途徑,不必走出家門,只需有一臺電腦,一根網(wǎng)線,連上網(wǎng)就可以訪問因特網(wǎng)上大量的網(wǎng)絡小說網(wǎng)站。隨著因特網(wǎng)發(fā)展和上網(wǎng)用戶的增加,農(nóng)村也已開始有越來越多的網(wǎng)絡連接,上網(wǎng)早已不是難事,所以,一個網(wǎng)絡的網(wǎng)絡小說閱讀平臺可以適應大眾的需求。對于管理者來說,便于管理,運營成本低,沒有地域限制??傊W(wǎng)絡小說閱讀平臺有著很高的靈活性和方便性,隨著社會的發(fā)展,會為越來越多的人所接受,有著極高的應用前景。在國外,電子圖書的發(fā)展體現(xiàn)在閱讀軟件和閱讀硬件兩個方面。閱讀軟件主要指在線閱讀器,閱讀硬件一般是手持式閱讀器,也包括手機。各軟硬件生產(chǎn)廠商為了更好的吸引消費者,在這上面都下了不小的精力來完善自己產(chǎn)品的功能,保證產(chǎn)品質量和提高其可用性,競爭也比較激烈。在國內(nèi),最為普遍的網(wǎng)絡小說閱讀終端是PC,手機閱讀網(wǎng)絡小說的方式也在逐漸增加,而專用的手持閱讀器還有待推廣。國內(nèi)已經(jīng)出現(xiàn)了很多的網(wǎng)絡小說網(wǎng)站,比較出名的有晉江文學、瀟湘書院、網(wǎng)絡小說閱讀網(wǎng)等,內(nèi)容包括一些原創(chuàng),各類網(wǎng)絡小說和國內(nèi)外名著。為了自身發(fā)展,網(wǎng)站往往和一些網(wǎng)絡作家簽約,網(wǎng)絡作家在簽約網(wǎng)站發(fā)表自己的原創(chuàng)并獲得不低的著作費,這樣也豐富了網(wǎng)站的內(nèi)容,更好地吸引讀者,達到雙贏的目的。網(wǎng)站盈利的方式主要是向讀者收取閱讀費,收費方式不盡相同,一般分為按字數(shù)收取,按本數(shù)收取和按時間收取費用,所以,擁有一個廣大的用戶群是保證網(wǎng)站持續(xù)良好發(fā)展的基礎。網(wǎng)站也可以靠出租廣告位置獲得額外的利益,但是過多的廣告,會影響網(wǎng)頁的美觀簡潔,一些彈窗廣告甚至會影響讀者的操作,給用戶造成不必要的麻煩,所以廣告的投放一般不會過多
第2章主要技術概述2.1B/S結構 B/S是Brower/Server就是用瀏覽器(如IE)為應用程序客戶端操作服務器。這樣用瀏覽器來操作簡單易用,但是對輸入沒有很好的驗證。邏輯實現(xiàn)不多。本地只是用于獲取數(shù)據(jù)然后大部分驗證需要提交服務器來完成。B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構[4]。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn),形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網(wǎng)建立B/S結構的網(wǎng)絡應用,并通過Internet/Intranet模式下數(shù)據(jù)庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權限,服務器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。B/S架構軟件的優(yōu)勢與劣勢:(1)維護和升級方式簡單。目前,軟件系統(tǒng)的改進和升級越來越頻繁,B/S架構的產(chǎn)品明顯體現(xiàn)著更為方便的特性。對一個稍微大一點單位來說,系統(tǒng)管理人員如果需要在幾百甚至上千部電腦之間來回奔跑,效率和工作量是可想而知的,但B/S架構的軟件只需要管理服務器就行了,所有的客戶端只是瀏覽器,根本不需要做任何的維護。無論用戶的規(guī)模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只需要針對服務器進行;如果是異地,只需要把服務器連接專網(wǎng)即可,實現(xiàn)遠程維護、升級和共享。所以客戶機越來越“瘦”,而服務器越來越“胖”是將來信息化發(fā)展的主流方向。今后,軟件升級和維護會越來越容易,而使用起來會越來越簡單,這對用戶人力、物力、時間、費用的節(jié)省是顯而易見的,驚人的。因此,維護和升級革命的方式是“瘦”客戶機,“胖”服務器。(2)成本降低,選擇更多。大家都知道windows在桌面電腦上幾乎一統(tǒng)天下,瀏覽器成為了標準配置,但在服務器操作系統(tǒng)上windows并不是處于絕對的統(tǒng)治地位。現(xiàn)在的趨勢是凡使用B/S架構的應用管理軟件,只需安裝在Linux服務器上即可,而且安全性高。所以服務器操作系統(tǒng)的選擇是很多的,不管選用那種操作系統(tǒng)都可以讓大部分人使用windows作為桌面操作系統(tǒng)電腦不受影響,這就使的最流行免費的Linux操作系統(tǒng)快速發(fā)展起來,Linux除了操作系統(tǒng)是免費的以外,連數(shù)據(jù)庫也是免費的,這種選擇非常盛行。(3)應用服務器運行數(shù)據(jù)負荷較重。由于B/S架構管理軟件只安裝在服務器端(Server)上,網(wǎng)絡管理人員只需要管理服務器就行了,用戶界面主要事務邏輯在服務器(Server)端完全通過WWW瀏覽器實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡管理人員只需要做硬件維護。但是,應用服務器運行數(shù)據(jù)負荷較重,一旦發(fā)生服務器“崩潰”等問題,后果不堪設想。因此,許多單位都備有數(shù)據(jù)庫存儲服務器,以防萬一。2.2JSP技術JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。Web服務器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Java
Servlet一樣,是在服務器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽[5]。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。JavaServlet
是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網(wǎng)的所有特點。自JSP推出后,眾多大公司都支持JSP技術的服務器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應用的服務器端語言。2.2.1JSP技術的強勢(1)一次編寫,到處運行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。(3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數(shù)臺服務器,Java顯示了一個巨大的生命力。(4)多樣化和功能強大的開發(fā)工具支持。這一點與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。(5)支持服務器端組件。web應用需要強大的服務器端組件來支持,開發(fā)人員需要利用其他工具設計實現(xiàn)復雜功能的組件供web頁面調(diào)用,以增強系統(tǒng)性能。JSP可以使用成熟的JAVABEANS組件來實現(xiàn)復雜商務功能。2.2.2JSP技術的弱勢(1)與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復雜性。(2)Java的運行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實是“最低性能價格比”了。從另一方面,它還需要硬盤空間來儲存一系列的.java文件和.class文件,以及對應的版本文件。2.3SQLServer2000數(shù)據(jù)庫SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了SQLServer7.0版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關軟件集成程度高等優(yōu)點,可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2000的大型多處理器的服務器等多種平臺使用。SQLServer2000系統(tǒng)之間之所以成為目前流行的大型商用數(shù)據(jù)庫系統(tǒng),有著其深刻的內(nèi)在因素,這與它鮮明的特點是分不開的:=1\*GB3①與Internet的高度集成。SQLServer2000與其它MicrosoftBackOffice產(chǎn)品緊密集成,在安全、事件瀏覽、WindowsNT服務程序、性能監(jiān)視器、多處理器支持、索引服務器等方面充分利用了它們的長處,形成了自己獨特的優(yōu)勢。=2\*GB3②高伸縮性和適應性。同一SQLServer2000數(shù)據(jù)庫引擎運行在Windows2000Professional、Windows2000Server、Windows2000AdvancedServer、Windows98和WindowsMillenniumEdition上。還運行在WindowsNT4.0版的所有版本上。此數(shù)據(jù)庫引擎是一個功能強健的服務器,可管理供上千用戶訪問的TB數(shù)據(jù)庫。同時,當以默認設置運行時,SQLServer2000還具有動態(tài)自調(diào)整等功能,這使得它可以有效地運行在便攜式電腦和臺式機中,用戶無需承擔管理任務。SQLServer2000WindowsCE版將SQLServer2000程序設計模型擴展到移動的WindowsCE設備上,并且可以很容易地集成到SQLServer2000環(huán)境中。=3\*GB3③企業(yè)級數(shù)據(jù)庫功能強。SQLServer2000關系數(shù)據(jù)庫引擎支持當今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護資料完整性,同時將管理上千個并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。SQLServer2000分布式查詢使您得以引用來自不同資料源的資料,就好象這些資料是SQLServer2000數(shù)據(jù)庫的一部分,同時分布式事務支持充分保護任何分布式資料更新的完整性。復制同樣使您得以維護多個資料復本,同時確保單獨的資料復本保持同步??蓪⒁唤M資料復制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務器。=4\*GB3④易于安裝和使用。SQLServer2000中包括一系列管理和開發(fā)工具,這些工具可改進在多個站點上安裝、部署、管理和使用SQLServer的過程。SQLServer2000還支持基于標準的、與WindowsDNA集成的程序設計模型,使SQLServer2000數(shù)據(jù)庫和資料倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。=5\*GB3⑤具有決策支持的資料倉庫。SQLServer2000提供了數(shù)據(jù)轉換服務、聯(lián)機分析處理(OLAP)、數(shù)據(jù)挖掘支持、EnglishQuery、MetaDataServices等等工具,以便對數(shù)進行析取、分析匯總資料并對數(shù)據(jù)庫的設計提供幫助。2.4JDBC數(shù)據(jù)庫連接JDBC(JavaDataBaseConnectivity)稱為Java數(shù)據(jù)庫連接,它是一種用于數(shù)據(jù)庫訪問的應用程序API,由一組用Java語言編寫的類和接口組成。JDBC為數(shù)據(jù)庫應用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一個標準的API,使他們能夠用純JavaAPI來編寫數(shù)據(jù)庫應用程序。JDBC定義了Java語言同SQL數(shù)據(jù)之間的程序設計接口。JDBC有一個非常獨特的動態(tài)連接結構,它使得系統(tǒng)模塊化。使用JDBC來完成對數(shù)據(jù)庫的訪問包括以下四個主要組件:Java的應用程序、JDBC驅動器管理器、驅動器和數(shù)據(jù)源。簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句,處理結果。2.4.1JDBC接口一般來說,JDBCAPI中有兩層接口:應用程序層,開發(fā)人員用API通過SQL調(diào)用數(shù)據(jù)庫和取得結果;驅動程序層,處理與具體驅動程序版本的所有通訊。JDBCAPI是一系列抽象的接口,應用程序開發(fā)人員通過它可以編寫訪問數(shù)據(jù)庫的Java應用程序。JDBCAPI中,抽象類的實現(xiàn)是由驅動程序開發(fā)商提供的。驅動程序實現(xiàn)了應用程序和某個數(shù)據(jù)庫產(chǎn)品之間的接口,它的管理器則對應用程序和驅動程序之間的交互進行控制。JDBCAPI主要用來連接數(shù)據(jù)庫和直接調(diào)用SQL命令,執(zhí)行各種SQL語句。利用JDBCAPI可以執(zhí)行一般的SQL語句、動態(tài)SQL語句,以及帶IN和OUT參數(shù)的存儲過程。JDBCAPI是一個標準統(tǒng)一的SQL數(shù)據(jù)存取接口,它為Java程序提供了一個統(tǒng)一無縫地操作各種數(shù)據(jù)庫的接口,程序員編程時,可以不關心它所要操作的數(shù)據(jù)庫是哪個廠家的產(chǎn)品,從而提高了軟件的通用性。而且在Internet上確實無法預料你的用戶想訪問什么類型的數(shù)據(jù)庫,只要系統(tǒng)上安裝了正確的驅動器組,JDBC應用程序就可以訪問其相關的數(shù)據(jù)庫。您只需用JDBCAPI寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL語句。而且,使用Java編程語言編寫的應用程序,就無須去憂慮要為不同的平臺編寫不同的應用程序。將Java和JDBC結合起來將使程序員只需寫一遍程序就可讓它在任何平臺上運行。2.4.2JDBC的驅動程序JDBC的數(shù)據(jù)庫訪問要通過JDBC驅動程序來完成,JDBC驅動程序是Java應用程序與物理數(shù)據(jù)庫之間橋梁。JDBC驅動程序可以分為下面四種類型,分別適用于不同的場合[6]。(1)JDBC-ODBC橋驅動程序這類驅動程序負責將JDBC轉換為ODBC,然后通過JDBC-ODBC的方法調(diào)用ODBC驅動程序來存取數(shù)據(jù)庫。(2)本機應用編程接口的JDBC驅動程序這類驅動程序部分采用Java語言編寫,部分采用本地代碼編寫。這種JDBC驅動會將客戶機的JDBC調(diào)用轉換為對特定數(shù)據(jù)庫驅動程序的調(diào)用,進而存取數(shù)據(jù)庫,因此必須先在客戶機上安裝好特定的數(shù)據(jù)庫的數(shù)據(jù)訪問驅動庫才能使用。(3)數(shù)據(jù)庫中間件的純JDBC驅動程序這種類型的驅動程序把客戶端的JDBC調(diào)用轉換為一種獨立于特定數(shù)據(jù)庫的協(xié)議,然后將數(shù)據(jù)庫訪問請求傳輸給服務器組件,最后該服務器組件將訪問請求轉換為特定數(shù)據(jù)庫的協(xié)議。(4)直接連接數(shù)據(jù)庫的純JDBC驅動程序這種類型的驅動程序可以將客戶端的JDBC請求直接轉換成特定數(shù)據(jù)庫的協(xié)議,所有存取數(shù)據(jù)庫的操作,都直接由驅動程序來完成。2.5TOMCAT應用服務器Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因為Tomcat技術先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器。Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache服務器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務器的擴展,但它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapps目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉化為Servlet文件,然后編譯。編譯以后,訪問將會很快。另外Tomcat也提供了一個應用:manager,訪問這個應用需要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。通過這個應用,輔助于Ftp,你可以在遠程通過Web部署和撤銷應用,當然本地也可以。Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的Web服務器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。第3章需求分析3.1系統(tǒng)功能描述該系統(tǒng)是用于用戶對網(wǎng)絡小說的閱讀和相互交流,運營者可以管理此平臺盈利,是一個基于在線閱讀的平臺,怎樣可以方便管理者的管理并實現(xiàn)盈利,方便用戶的使用,提供搜索和閱讀功能并且提供一個給用戶的交流平臺是研究的主要內(nèi)容。重點在于對訪問該系統(tǒng)的身份進行基于角色的識別,使系統(tǒng)可以允許三種不同的角色進行訪問,即游客、會員、管理員,并賦予他們不同的訪問權限。3.1.1用戶及主要操作功能游客可以瀏覽網(wǎng)站的主頁,但是需要注冊為會員后才能對網(wǎng)絡小說進免費行閱讀或閱讀。會員登錄需要輸入帳號和密碼信息,每個會員的帳號下都會對應有相關的個人信息,如個人郵箱,地址等,不同的會員等級在閱讀圖書時會有不同的待遇。以管理員身份登錄也需要輸入賬號和密碼,可以管理會員信息,添加公告,管理留言板等,管理員的角色在該系統(tǒng)中擁有最高的權限。3.1.2系統(tǒng)角色管理模塊包括系統(tǒng)管理員模塊和會員模塊(1)在會員模塊,作為會員,可以查看個人的信息,修改自己的密碼;作為管理員可以查看,管理,刪除會員信息。(2)在管理員模塊,可以添加、刪除管理員,管理員可以修改自己的密碼。3.1.3網(wǎng)絡小說管理模塊網(wǎng)絡小說管理模塊包括不同網(wǎng)絡小說類別的添加,刪除以及網(wǎng)絡小說的上傳,刪除管理。(1)網(wǎng)絡小說類別的添加是由管理員進行的,可以包括武俠小書,都市言情,穿越小書等各個類別。按照付費與否可以添加免費和付費兩種類別,當然這和前一種分類方式并不沖突。(2)各類網(wǎng)絡小說由管理員上傳,上傳時如果是付費網(wǎng)絡小說,可以設置下載此網(wǎng)絡小說是所需費用。(3)對于一些過時,或人氣不高的網(wǎng)絡小說,系統(tǒng)管理員可以進行刪除操作。3.1.4公告模塊公告模塊主要包括了公告的發(fā)布、編輯、刪除和瀏覽;公告的發(fā)布、編輯和刪除只能由管理員來進行。3.2系統(tǒng)性能需求分析網(wǎng)絡小說租賃下載系統(tǒng)是對廣大讀書愛好者設計的一個系統(tǒng),提供給讀者一個尋找讀物的平臺,因此必須方便用戶的注冊,搜索和下載等功能,并提供一個交流平臺。系統(tǒng)應該具有開放性和可靠性,同時又要方便進行操作和維護。3.3開發(fā)環(huán)境及開發(fā)工具操作系統(tǒng):WindowsXPSP3;語言選擇:JSP、JavaScript;數(shù)據(jù)庫選擇:SQLServer2000;主要開發(fā)工具:DreamweaverCS3、Eclipse3.4;Web應用服務器:Tomcat5.5。第4章概要設計本章詳細的介紹了本系統(tǒng)的設計實現(xiàn),包括系統(tǒng)功能模塊的設計和數(shù)據(jù)庫的設計,系統(tǒng)功能模塊設計主要介紹了系統(tǒng)的功能和各功能實現(xiàn)的流程,數(shù)據(jù)庫設計主要介紹了數(shù)據(jù)庫表的設計和各字段的意義。4.1系統(tǒng)的體系結構圖4-1系統(tǒng)結構模塊示意圖數(shù)據(jù)庫服務器Web服務器圖4-1系統(tǒng)結構模塊示意圖數(shù)據(jù)庫服務器Web服務器(jsp)管理員游客會員JDBC4.2系統(tǒng)功能結構設計系統(tǒng)功能框圖如圖4-2所示。網(wǎng)絡小說租賃下載系統(tǒng)包括了用戶登錄模塊和匿名模塊,在用戶登錄模塊中角色分為管理員和會員三種角色。管理員可以對用戶進行管理,可以建立數(shù)目類別,上傳網(wǎng)絡小說,公告的編輯和發(fā)布;會員可以瀏覽系統(tǒng)公告、網(wǎng)絡小說信息,可以同其他會員進行交流。小說在線閱讀系統(tǒng)小說在線閱讀系統(tǒng)點券充值下載小說搜索小說修改密碼在線留言會員登錄管理員登錄會員管理修改密碼點券管理小說管理公告管理留言管理系統(tǒng)頁面 圖4-2系統(tǒng)功能結構圖圖4-2系統(tǒng)功能結構圖4.2.1管理員模塊管理員模塊會員管理公告管理小說管理點券充值確認會員信息查看會員信息刪除管理員模塊會員管理公告管理小說管理點券充值確認會員信息查看會員信息刪除添加系統(tǒng)公告修改系統(tǒng)公告刪除系統(tǒng)公告增刪小說類別增刪小說信息查看小說信息圖4-3管理員模塊結構圖4.2.2會員模塊本模塊包括信息管理,點券充值,小說搜索三部分,具體的功能結構如圖4-4所示。修改信息充值點券修改信息充值點券信息管理查看信息退出系統(tǒng)會員模塊小說閱讀會員模塊書籍租借搜索書籍下載書籍信息管理信息管理退出系統(tǒng)查看信息退出系統(tǒng)查看信息4-4會員模塊結構圖4-4會員模塊結構圖4.3系統(tǒng)流程圖4.3.1會員管理會員管理包括對公司新近員的信息進行查看和刪除等操作。還有對點券充值的確認。(1)刪除會員首先查看會員的信息,查看的會員的信息必須在庫里存在,如果有即可找到,如果沒有就不能看到。當找到相應的記錄后就會顯示出來,然后對會員信息進行刪除,刪除完成該會員的信息就不存在數(shù)據(jù)庫中。具體的操作流程如圖4-5所示。不顯示任何記錄不顯示任何記錄開始查找user表找到符合條件記錄嗎否顯示相應記錄信息執(zhí)行刪除員工表中記錄提示刪除成功完成是圖4-5刪除會員流程圖圖4-5刪除會員流程圖4.3.2公告管理系統(tǒng)公告的管理由管理員來進行管理,系統(tǒng)公告發(fā)布后所有人都可以看見,系統(tǒng)公告的數(shù)據(jù)表(newsinfo),所有公司公告的相關操作均在本表了進行操作。4.4數(shù)據(jù)庫設計數(shù)據(jù)庫設計是系統(tǒng)設計中非常重要的環(huán)節(jié)。數(shù)據(jù)庫設計是整個系統(tǒng)的根基,如果設計不好,在后來的系統(tǒng)維護、變更和功能擴充時,甚至在系統(tǒng)開發(fā)過程中,將會引起比較大的問題,有時將會重新進行大量的工作。創(chuàng)建數(shù)據(jù)庫:數(shù)據(jù)庫名:manage(軟件項目團隊管理系統(tǒng))本系統(tǒng)中一共用到了以下幾個數(shù)據(jù)表:(1)網(wǎng)絡小說類別表(t_catelog):存儲網(wǎng)絡小說類別信息,具體為表4-1所示。表4-1網(wǎng)絡小說類別表(t_catelog)名稱別名類型長度(字符)1id編號Int42name類別名稱Varchar503jieshao類別介紹Varchar5000(2)網(wǎng)絡小說表(t_book):用于存放網(wǎng)絡小說信息,具體如表4-2所示。表4-2網(wǎng)絡小說信息表(t_book)名稱別名類型長度(字符)1id編號Int42catalog_id類別編號Int503name名稱Varchar504zuozhe作者Varchar505shifoumianfei是否免費Varchar506dianquan下載所需點券Varchar507daxiao大小Varchar508jieshao介紹Varchar509mianfeizhangjie免費試讀Varchar5010fujian附件Varchar50(3)會員信息表(t_user):記錄會員信息,具體如表4-3所示。表4-3會員信息表(t_user)名稱別名類型長度(字符)1id編號Int42loginname登錄帳號Varchar503loginpw登錄密碼Varchar504name姓名Varchar505sex性別Varchar506age年齡Varchar507address住址Varchar508tel聯(lián)系方式Varchar509email郵箱Varchar5010dianquan擁有點券值Int4(4)充值表(t_chongzhi):用來存放會員充值信息,具體設計如表4-4所示。表4-4充值表(t_chongzhi)名稱別名類型長度(字符)1id編號Int42user_id會員編號Int43jine充值金額Int44fukuanfangshi付款方式Varchar505shijian充值時間Varchar506zhuangtai審核狀態(tài)Varchar50(5)留言表(t_liuyan):用來存放所有的留言信息,具體設計如表4-5所示。表4-5留言表(t_liuyan)名稱別名類型長度(字符)1id編號Int42title標題Varchar503content內(nèi)容Varchar504shijian留言時間Varchar505user_id會員編號Int4(6)公告表(t-gonggao):用來存放公告信息,具體設計如表4-6所示。表4-6公告表(t_gonggao)名稱別名類型長度(字符)1id編號Int42title標題Varchar503content內(nèi)容Varchar504shijian留言時間Varchar50(7)系統(tǒng)管理員表(t_admin):用來存放管理員信息,具體設計如表4-7所示。表4-7管理員表(t_admin)名稱別名類型長度(字符)1userId編號Int42userName帳號Varchar503userPw密碼Varchar50第5章詳細設計本章介紹的是本網(wǎng)絡小說下載系統(tǒng)的詳細功能,包括了頁面的設計以及程序的設計。5.1公告管理模塊公告管理包括了公告的發(fā)布、管理和瀏覽,下面介紹這些功能。5.1.1瀏覽公告瀏覽公告是前臺頁面的功能,只要登錄網(wǎng)站主頁即可進行公告的瀏覽,在主頁上顯示最新的幾條公告。圖5-1為主頁顯示的部分公告頁面:下面為公告模板的核心代碼。ListgonggaoList=newArrayList(); Stringsql="select*fromt_gonggaoorderbyiddesc"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgonggaogonggao=newTgonggao(); gonggao.setId(rs.getString("id")); gonggao.setTitle(rs.getString("title")); gonggao.setContent(rs.getString("content")); gonggao.setShijian(rs.getString("shijian")); gonggaoList.add(gonggao); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); 圖5-3為某條公告的顯示頁面:5.1.2發(fā)布公告發(fā)布公告是由管理員來進行的操作,只有管理員有權限進行公告的發(fā)布及修改、刪除,其他人只能夠進行瀏覽,而管理員進行公告發(fā)布之前需要進行登錄,登錄界面如圖5-5所示:在登陸進入管理頁面之后,就可以進行公告的發(fā)布,管理員進入管理頁面之后可以進行很多操作,而公告的發(fā)布與管理只是管理員眾多工作之一,圖5-6為管理員登陸后的界面:5.1.3管理公告公告發(fā)布后要及時對公告進行管理,管理界面如圖5-7所示:以下公告管理的核心代碼:publicvoidgonggaoAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringsql="insertintot_gonggaovalues(?,?,?,?)"; Object[]params={id,title,content,shijian}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","gonggao?type=gonggaoMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidgonggaoDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParameter("id"); Stringsql="deletefromt_gonggaowhereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","gonggao?type=gonggaoMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidgonggaoMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListgonggaoList=newArrayList(); Stringsql="select*fromt_gonggao"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgonggaogonggao=newTgonggao(); gonggao.setId(rs.getString("id")); gonggao.setTitle(rs.getString("title")); gonggao.setContent(rs.getString("content")); gonggao.setShijian(rs.getString("shijian")); gonggaoList.add(gonggao); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("gonggaoList",gonggaoList); req.getRequestDispatcher("admin/gonggao/gonggaoMana.jsp").forward(req,res); } 5.2會員模塊會員模塊包括會員注冊,搜索閱讀和點券的充值。5.2.1會員注冊首先介紹會員信息的注冊,具體界面如圖5-9所示:圖5-9會員注冊界面會員信息的注冊有一定的限制條件,用戶名必填項,年齡必須為數(shù)字,密碼輸入兩次必須一致,否則會提示出錯。會員注冊的核心代碼如下:publicvoiduserReg(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringaddress=req.getParameter("address"); Stringtel=req.getParameter("tel"); Stringemail=req.getParameter("email"); Stringqq=req.getParameter("qq"); intdianquan=0; Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?,?,?,?,?,?,?,?)"; Object[]params={id,loginname,loginpw,name,sex,age,address,tel,email,qq,dianquan,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); StringtargetURL="/common/add_success.jsp"; dispatch(targetURL,req,res); } 5.2.2點券充值點券充值應為條件限制,不能做到與付費接口的連接,再此只做模擬,點券充值后需由管理員來確認。具體界面如圖5-10所示:點券充值的核心代碼如下:publicvoidchongzhiAdd(HttpServletRequestreq,HttpServletResponseres) { Stringuser_id=req.getParameter("user_id"); intjine=Integer.parseInt(req.getParameter("jine")); Stringfukuanfangshi=req.getParameter("fukuanfangshi"); Stringshijian=newDate().toLocaleString(); Stringzhuangtai="a"; Stringsql="insertintot_chongzhivalues(?,?,?,?,?)"; Object[]params={user_id,jine,fukuanfangshi,shijian,zhuangtai}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","申請成功。等待管理員審核"); StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); } publicvoidchongzhiMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListchongzhiList=newArrayList(); Stringsql="select*fromt_chongzhiorderbyzhuangtai"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tchongzhichongzhi=newTchongzhi(); chongzhi.setId(rs.getInt("id")); chongzhi.setUser_id(rs.getString("user_id")); chongzhi.setJine(rs.getInt("jine")); chongzhi.setFukuanfangshi(rs.getString("fukuanfangshi")); chongzhi.setShijian(rs.getString("shijian")); chongzhi.setZhuangtai(rs.getString("zhuangtai")); chongzhiList.add(chongzhi); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("chongzhiList",chongzhiList); req.getRequestDispatcher("admin/chongzhi/chongzhiMana.jsp").forward(req,res); } 5.2.3搜索和下載小說登錄到系統(tǒng)的會員,可以搜索自己喜愛的小說,可以按照書名搜索,也可以按照作者搜索,如果有符合搜索條件的小說,則會顯示在主頁面。以下為搜索小說的界面:核心代碼如下:publicvoidbookSearch(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListbookList=newArrayList(); Stringsql="select*fromt_bookwheredel='no'andnamelike'%"+req.getParameter("name").trim()+"%'"+"andzuozhelike'%"+req.getParameter("zuozhe").trim()+"%'"; System.out.println(sql+"^^^^^"); Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tbookbook=newTbook(); book.setId(rs.getInt("id")); book.setCatelog_id(rs.getInt("catelog_id")); book.setName(rs.getString("name")); book.setShifoumianfei(rs.getString("shifoumianfei")); book.setDianquan(rs.getInt("dianquan")); book.setDaxiao(rs.getString("daxiao")); book.setJieshao(rs.getString("jieshao")); book.setMianfeizhangjie(rs.getString("mianfeizhangjie")); book.setFujian(rs.getString("fujian")); book.setFujianYuanshiming(rs.getString("fujianYuanshiming")); book.setFabushijian(rs.getString("fabushijian")); book.setDel(rs.getString("del")); book.setCatelog(liuService.getCatelog(rs.getInt("catelog_id"))); bookList.add(book); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("bookList",bookList); req.getRequestDispatcher("qiantai/book/bookSearch.jsp").forward(req,res); } 下載小說界面:下載核心代碼:try{StringfujianPath=request.getParameter("fujianPath"); StringfujianYuashiMing=request.getParameter("fujianYuashiMing"); fujianYuashiMing=.URLDecoder.decode(fujianYuashiMing,"UTF-8"); System.out.println(fujianYuashiMing+fujianPath); SmartUploadsu=newSmartUpload();//新建一個SmartUpload對象 su.initialize(pageContext);//初始化 su.setContentDisposition(null); //設定contentDisposition為null以禁止瀏覽器自動打開文件, //保證點擊鏈接后是下載文件。若不設定,則下載的文件擴展名為 //doc時,瀏覽器將自動用word打開它。擴展名為pdf時,將用acrobat打開 //response.sendRedirect(path+"/updown/updown_err.jsp"); //su.downloadFile("/uploadPath/file/liu.doc");//下載英文文件 su.downloadFile(fujianPath,null,newString(fujianYuashiMing.getBytes(),"ISO8859-1"));//下載中文文件 //downloadFile(StringsourceFilePathName,StringcontentType,StringdestFileName) out.clear(); out=pageContext.pushBody();}catch(Exceptione){%><scripttype="text/javascript">alert("文件不存在。請聯(lián)系管理人員");window.history.back();</script><%}5.3小說管理模塊,小說管理模塊包括網(wǎng)絡小說類別管理模塊和網(wǎng)絡小說的管理,由管理員來管理操作,可以添加和刪除相應的網(wǎng)絡小說類別,網(wǎng)絡小說,下面詳細介紹各個功能。5.3.1網(wǎng)絡小說類別的管理網(wǎng)絡小說類別的管理包括添加和刪除網(wǎng)絡小說,界面如下圖所示。類別建立時,需要要確定好類別的名稱:設計界面如下:核心代碼如下:publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={name,jieshao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidcatelogDel(HttpServletRequestreq,HttpServletResponseres) { Stringsql="updatet_catelogsetdel='yes'whereid="+Integer.parseInt(req.getParameter("id")); Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidcatelogMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListcatelogList=newArrayList(); Stringsql="select*fromt_catelogwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tcatelogcatelog=newTcatelog(); catelog.setId(rs.getInt("id")); catelog.setName(rs.getString("name")); catelog.setJieshao(rs.getString("jieshao")); catelogList.add(catelog); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("catelogList",catelogList); req.getRequestDispatcher("admin/catelog/catelogMana.jsp").forward(req,res); } 5.3.2網(wǎng)絡小說管理網(wǎng)絡小說的管理包括各個類別中,網(wǎng)絡小說的上傳和已有網(wǎng)絡小說的刪除,上傳時,有上傳類別,付費和免費的選擇。網(wǎng)絡小說管理的界面如圖所示:5.3留言版模塊下面介紹的是會員之間的交流,每個會員可以在系統(tǒng)的留言版上進行留言,而其他會員看到留言后可以與之進行交流。留言版界面如下圖所示:留言版代碼如下所示:publicvoidliuyanAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringuser_id="0"; if(req.getSession().getAttribute("user")!=null) { Tuseruser=(Tuser)req.getSession().getAttribute("user"); user_id=user.getId(); } Stringsql="insertintot_liuyanvalues(?,?,?,?,?)"; Object[]params={id,title,content,shijian,user_id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","liuyan?type=liuyanAll"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidliuyanAll(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListliuyanList=newArrayList(); Stringsql="select*fromt_liuyan"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tliuyanliuyan=newTliuyan(); liuyan.setId(rs.getString("id")); liuyan.setTitle(rs.getString("title")); liuyan.setContent(rs.getString("content")); liuyan.setShijian(rs.getString("shijian")); liuyan.setUser_id(rs.getString("user_id")); liuyan.setUser_name(liuService.getUserName(rs.getString("user_id"))); liuyanList.add(liuyan); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("liuyanList",liuyanList); req.getRequestDispatcher("qiantai/liuyan/liuyanAll.jsp").forward(req,res); } 5.4通用模塊5.4.1登錄、修改個人信息及注銷退出登錄是系統(tǒng)的每個角色都會進行的,但是由于權限的不同所以登錄后的功能不同,但是每個人都有修改個人信息、修改密碼和注銷退出的功能。由于此處的修改個人信息與管理員進行修改沒有太大的區(qū)別,在此就不做詳細介紹,而修改密碼和注銷退出也是比較簡單的功能,在此也就不再詳細介紹。5.4.2數(shù)據(jù)庫的連接接本系統(tǒng)采用數(shù)據(jù)庫的連接是用了一個java包來進行連接的,這樣方便了數(shù)據(jù)庫的管理。在實現(xiàn)某一個功能時,首先要連接數(shù)據(jù)庫。那么,如果我們在每一次進行數(shù)據(jù)庫操作前都需要加載驅動、創(chuàng)建連接,則這些操作可以封裝在一個數(shù)據(jù)庫操作類中。這樣做有很大的優(yōu)點,一旦系統(tǒng)移植、數(shù)據(jù)庫參數(shù)改變,則不需要重新修改所有的連接代碼并重新編譯,只要在這個封裝類中改變其中的參數(shù)即可。我采用了如下代碼的一個類來統(tǒng)一管理數(shù)據(jù)庫的連接://數(shù)據(jù)庫連接封裝publicclassDB{ privateConnectioncon; privatePreparedStatementpstm; privateStringuser="sa"; privateStringpassword="sa"; privateStringclassName="net.sourceforge.jtds.jdbc.Driver"; privateStringurl="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=db_ebook"; publicDB() { try { Class.forName(className); }catch(ClassNotFoundExceptione) { System.out.println("加載數(shù)據(jù)庫驅動失?。?); e.printStackTrace(); } } /**創(chuàng)建數(shù)據(jù)庫連接*/ publicConnectiongetCon() { try { con=DriverManager.getConnection(url,user,password); }catch(SQLExceptione) { System.out.println("創(chuàng)建數(shù)據(jù)庫連接失?。?); con=null; e.printStackTrace(); } returncon; } publicvoiddoPstm(Stringsql,Object[]params) { if(sql!=null&&!sql.equals("")) { if(params==null) params=newObject[0]; getCon(); if(con!=null) { try { System.out.println(sql); pstm=con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); for(inti=0;i<params.length;i++) { pstm.setObject(i+1,params[i]); } pstm.execute(); }catch(SQLExceptione) { System.out.println("doPstm()方法出錯!"); e.printStackTrace(); } } } } publicResultSetgetRs()throwsSQLException { returnpstm.getResultSet(); } publicin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲租賃傭金居間合同樣本
- 2025年度家電產(chǎn)品銷售代理合同集成
- 2025年度安防消防展覽會現(xiàn)場服務合同
- 產(chǎn)婦康復護理月嫂居間合同
- 人教版七年級歷史與社會下冊:5.1.2行政區(qū)劃教學設計
- 二零二五年度瓷磚市場調(diào)研分析合同
- 教育基地裝修抵押合同
- 2025年度離職員工離職后知識產(chǎn)權保護及糾紛解決協(xié)議
- 2025年度高端商務區(qū)物業(yè)管理勞動合同
- 全國江西科學技術版小學信息技術五年級上冊第三單元第8課《分支結構》教學設計
- 人教版小學語文1-6年級背誦內(nèi)容完整版
- 2023徐金桂“徐徐道來”(行政法知識點)版
- 《事故汽車常用零部件修復與更換判別規(guī)范》
- 2024-2030年中國酒類流通行業(yè)發(fā)展動態(tài)及投資盈利預測研究報告
- 物業(yè)管理如何實現(xiàn)降本增效
- DL-T825-2021電能計量裝置安裝接線規(guī)則
- 信息科技重大版 七年級下冊 互聯(lián)網(wǎng)應用與創(chuàng)新 第一單元單元教學設計 互聯(lián)網(wǎng)創(chuàng)新應用
- 2024年興業(yè)銀行股份有限公司校園招聘考試試題及參考答案
- 2024智慧城市城市交通基礎設施智能監(jiān)測技術要求
- 2024年湖南環(huán)境生物職業(yè)技術學院單招職業(yè)適應性測試題庫及參考答案
- 專題06 壓強計算(壓強與浮力結合題)-上海市2024年中考復習資料匯編(培優(yōu)專用)【解析版】
評論
0/150
提交評論