版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、編號2012150324研究類型應用研究 分類號 TP39學士學位論文(設(shè)計)Bachelors Thesis論文題目基于Java的虛擬股票交易系統(tǒng)的設(shè)計與實現(xiàn)作者姓名張浩學號2008115020324所在院系 計算機科學與技術(shù)學院學科專業(yè)名稱通信工程導師及職稱黃琳 講師論文答辯時間2012年5月12日湖北師范學院本科畢業(yè)論文(設(shè)計)誠信承諾書中文題目:基于Java的虛擬股票交易系統(tǒng)的設(shè)計與實現(xiàn)外文題目:stock trading system學生姓名張浩學 號2008115020324院系專業(yè)計算機科學與技術(shù)學院通信工程班 級0803學 生 承 諾我承諾在畢業(yè)論文(設(shè)計)活動中遵守學校有關(guān)規(guī)
2、定,恪守學術(shù)規(guī)范,本人畢業(yè)論文(設(shè)計)內(nèi)容除特別注明和引用外,均為本人觀點,不存在剽竊、抄襲他人學術(shù)成果,偽造、篡改實驗數(shù)據(jù)的情況。如有違規(guī)行為,我愿承擔一切責任,接受學校的處理。 學生(簽名):年 月 日指導教師承諾我承諾在指導學生畢業(yè)論文(設(shè)計)活動中遵守學校有關(guān)規(guī)定,恪守學術(shù)規(guī)范,經(jīng)過本人核查,該生畢業(yè)論文(設(shè)計)內(nèi)容除特別注明和引用外,均為該生本人觀點,不存在剽竊、抄襲他人學術(shù)成果,偽造、篡改實驗數(shù)據(jù)的現(xiàn)象。 指導教師(簽名): 年 月 日基于Java的虛擬股票交易系統(tǒng)的設(shè)計與實現(xiàn)張浩(指導教師:黃琳)(湖北師范學院 計算機科學與技術(shù)學院 0803班 湖北 黃石 435002)摘要:此
3、股票交易系統(tǒng)是集注冊、登錄、查詢、瀏覽、更新及添加功能為一體的系統(tǒng)。除了能實現(xiàn)增刪改查功能以外,還能進行驗證用戶登錄和退出功能,提取出所填寫的信息并與數(shù)據(jù)庫進行比較來實現(xiàn);該系統(tǒng)嚴格按照標準軟件開發(fā)MVC的開發(fā)流程,采用Servlet+JSP技術(shù)和 MySQL數(shù)據(jù)庫進行設(shè)計,開發(fā)并實現(xiàn)。用戶通過注冊,登錄到該系統(tǒng)后可以進行上市股票的交易,修改個人資料等等。該系統(tǒng)操作簡單,安全可靠,能夠滿足絕大多數(shù)人的需求。關(guān)鍵詞:股票交易系統(tǒng);JAVA;HttpServlet;MySQL數(shù)據(jù)庫;面向?qū)ο笾袌D分類號:TQ351. 2 Abstract: The functions of the stock tr
4、ading system includes login,register,search, browse,update and add. Besides the function,add,delete,update,search,the stock trading system can check the register and exit of users.The system realize thefunction by comparing the message written by users with database.The system in software engineerin
5、g object-oriented development and the development process.The HttpServlet JSP technology and mysql database on a design,development and implementation.The users through a registered and logged on to the system,you can trade the stock and change yourself information.The system is easy operation and s
6、afe,also able to meet the demand of most people.Key words: Stock trading system;Java;HttpServlet;MySQL database; Object-oriented目 錄1 前言11.1 課題研究背景與意義12 系統(tǒng)說明12.1 虛擬股票交易系統(tǒng)的功能12.2 系統(tǒng)開發(fā)技術(shù)22.3 系統(tǒng)開發(fā)工具及環(huán)境22.4 系統(tǒng)開發(fā)方式32.5 可行性分析33 系統(tǒng)分析43.1 系統(tǒng)結(jié)構(gòu)43.2 系統(tǒng)描述53.3 總體功能模塊63.4 系統(tǒng)用例模型74 系統(tǒng)設(shè)計84.1 功能模塊細化84.2 數(shù)據(jù)庫設(shè)計84.3 系統(tǒng)
7、類設(shè)計115 系統(tǒng)運行和測試335.1 系統(tǒng)首頁335.2 管理員登錄頁面335.3 新用戶注冊頁面345.4 系統(tǒng)功能頁面355.5 用戶所持股票頁面355.6 上市股票頁面365.7 賬戶余額顯示頁面375.8 用戶個人信息修改頁面376 結(jié)論386.1 系統(tǒng)的優(yōu)缺點38結(jié)束語38謝辭39基于Java的虛擬股票交易系統(tǒng)的設(shè)計與實現(xiàn)1 前言1.1課題研究背景與意義近些年來,隨著信息化社會的快速推進以及網(wǎng)上交易系統(tǒng)的不斷普及與推廣,特別是股票市場近些年來的蓬勃發(fā)展,再加上各種網(wǎng)絡(luò)技術(shù)的逐步成熟,國內(nèi)股票市場發(fā)展十分迅速,催生出了諸如上海證券交易所和深圳證劵交易所等國內(nèi)知名的股票交易中心,同時也
8、吸引了越來越多的股票熱愛者。當然,問題也接踵而來,由于國內(nèi)股票市場剛剛起步,就缺少統(tǒng)一而且全面的交易平臺,導致去多人對于股票的認識還很匱乏。作為一名計算機學院的學院,很希望能盡自己一份微薄的力量去為大眾服務(wù),基于Java的虛擬股票交易系統(tǒng)就是為了解決上述問題而進行開發(fā)的。該系統(tǒng)嚴格按照軟件工程中面向?qū)ο蟮拈_發(fā)方法和開發(fā)流程。并且該系統(tǒng)內(nèi)容豐富,安全可靠,操作簡單,能夠充分滿足絕大多數(shù)股票愛好者的追求。2 系統(tǒng)說明2.1虛擬股票交易系統(tǒng)的功能根據(jù)各大網(wǎng)站收集的網(wǎng)民的需求和本人對股票交易的一些認識進行全面的分析,該虛擬股票交易系統(tǒng)只向用戶開放前臺操作一種方式,提供簡單、友好的用戶界面,以保證用戶體
9、驗的便捷性。用戶在注冊該系統(tǒng)之后,只需輸入自己的用戶名和密碼,即可登錄到該系統(tǒng)進行股票信息查詢、股票買入、股票賣出、交易明細查詢、個人信息修改等操作。虛擬股票交易系統(tǒng)的以上功能是通過一系列的JSP網(wǎng)頁與MySQL數(shù)據(jù)庫動態(tài)交互來實現(xiàn)的。系統(tǒng)設(shè)計的主要工作在于系統(tǒng)數(shù)據(jù)庫的設(shè)計和JSP頁面的布局。2.2系統(tǒng)開發(fā)技術(shù)J2EE全稱是JAVA 2平臺企業(yè)版(JAVA 2 Platform Enterprise Edition),它是由美國SUN公司(已于2009年被美國甲骨文公司收購)提出的最新JAVA標準。利用J2EE技術(shù),公司企業(yè)能夠建立完全符合自己商業(yè)邏輯的服務(wù)架構(gòu),從而以最短的相應時間、最低的投
10、入,為最大范圍的客戶、雇員及供貨商提供最方便的服務(wù),而且這些服務(wù)是高質(zhì)量、安全和可擴展的。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了JAVA標準版中的許多優(yōu)點,例如“編寫一次、隨處運行”的特性、方便存取數(shù)據(jù)庫的JDBC API、CORBA技術(shù)以及能夠在Intemet應用中保護數(shù)據(jù)的安全模式等等,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴
11、展性的應用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應用的費用和復雜性,同時提供對現(xiàn)有應用程序集成強有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?,添加目錄支持,增強了安全機制,提高了性能。J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)他們所在的層分布在不同的機器上。事實上,SUN設(shè)計J2EE的初衷正是為了解決兩層模式CS(ClientServer)的弊端,在傳統(tǒng)模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議,通
12、常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難。而網(wǎng)上交易系統(tǒng)卻恰恰要求應用程序有很高的可擴展性、組件有可重用性以及系統(tǒng)有很強的安全性等1。2.3系統(tǒng)開發(fā)工具及環(huán)境此次要開發(fā)的虛擬股票交易系統(tǒng)是一個在Internet網(wǎng)絡(luò)環(huán)境下運行的系統(tǒng),因此我采用的技術(shù)有Servlet+JSP,開發(fā)工具為MyEclipse、應用服務(wù)器Tomcat、數(shù)據(jù)庫MySQL。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應用程序服務(wù)器的整合方面極大地
13、提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML、JSF、CSS、Javascript、SQL。Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。Tomcat是一個輕量級應用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程
14、單獨運行的。MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購,而2009年,SUN又被Oracle收購。目前MySQL被廣泛地應用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。2.4系統(tǒng)開發(fā)方式本課題是B/S (Browser/Server)即瀏覽器和服務(wù)器結(jié)構(gòu)的軟件項目,采用了MVC(Model View Controller)模式進行設(shè)計。其中,Model層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,用JavaBean(實體
15、類)來實現(xiàn);View層用于與用戶的交互,用JSP來實現(xiàn);Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。2.5 可行性分析針對于自己對股票交易市場的理解和觀測,再加上和同學的交流,大量資料的查閱,最終完成的交易系統(tǒng)基本上能夠滿足用戶的需求。由于本人在大學期間有過對JAVA技術(shù)的學習,而且在公司實習階段一直在做J2EE方面的開發(fā),對這項技術(shù)也有了一定的掌握程度,所以在開發(fā)該系統(tǒng)的過程中還是比較順利的。3 系統(tǒng)分析3.1 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)是系統(tǒng)的最高層概念。在開發(fā)虛擬股票交易系統(tǒng)
16、的實例之前,應該先選擇或定義好一個合適的系統(tǒng)結(jié)構(gòu)。該系統(tǒng)主要采用MVC三層模式,分別是模型(Model)層、視圖(View)層和控制(Controller)層。結(jié)構(gòu)模型如圖3.1所示:圖3.1 MVC三層模式模型(Model)層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯。在MVC的三個部件中,模型(Model)層擁有最多的處理任務(wù)。封裝的是數(shù)據(jù)源和所有基于對這些數(shù)據(jù)的操作。JavaBean分為業(yè)務(wù)類和數(shù)據(jù)實體,業(yè)務(wù)類處理業(yè)務(wù)數(shù)據(jù)、數(shù)據(jù)實體承載數(shù)據(jù),基本上大多數(shù)的項目都是使用這種MVC的實現(xiàn)模式。在一個組件中,Model往往表示組件的狀態(tài)和操作狀態(tài)的方法,如處理請求執(zhí)行業(yè)務(wù)邏輯、訪問數(shù)據(jù)庫、封裝數(shù)據(jù)等等。封裝的數(shù)據(jù)和
17、行為必須是獨立于任何的表現(xiàn),提高可重復性,可以獨立的測試,不要包含任何的Servlet和JSP的API2。視圖(View)層用于與用戶的交互,封裝的是對數(shù)據(jù)源Model的一種顯示。一個模型可以由多個視圖,而一個視圖理論上也可以和不同的模型關(guān)聯(lián)起來,通常用JSP來實現(xiàn)。JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)
18、的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行3。控制(Controller)層封裝的是外界作用于模型的操作。通常,這些操作會轉(zhuǎn)發(fā)到模型上,并調(diào)用模型中相應的一個或者多個方法。一般Controller在Model和View之間起到了溝通的作用,處理用戶在View上的輸入,并轉(zhuǎn)發(fā)給Model。這樣Model和View兩者之間可以做到松散耦合,甚至可以彼此不知道對方,而由Controller連接起這兩個部分4。3.2 系統(tǒng)描述系統(tǒng)描述初步界定了系統(tǒng)的范圍和功能。為了有一個更加清晰的開發(fā)思路,現(xiàn)用自然語言對整個虛擬股票交易系統(tǒng)進行詳細地描述。3.2.1 總述該虛擬股票交易系
19、統(tǒng)主要有管理員登錄進行管理,用戶注冊、用戶登錄、用戶操作、安全退出幾大功能模塊。用戶在注冊該系統(tǒng)之后,只需輸入自己的SSN和密碼,即可登錄到該系統(tǒng)進行股票信息查詢、股票買入、股票賣出、交易明細查詢、個人信息修改等操作。而管理員是設(shè)定好的,管理員登陸后可以進行系統(tǒng)的管理和維護。3.2.2 分述接下來,本人將對上述功能模塊進行詳細的描述。管理員登錄進行管理:因本股票交易系統(tǒng)為虛擬交易系統(tǒng),股票的名稱,價格,用戶的信息都來自于數(shù)據(jù)庫,并非真實數(shù)據(jù),只是本人的一次模擬,所以在此系統(tǒng)中增加的一項管理員的管理功能。管理員可以進行用戶信息的修改,非法用戶的刪除操作。用戶注冊:如果是新用戶首次來到本系統(tǒng),先要
20、進行用戶注冊,填寫個人詳細信息,SSN和密碼是用戶登陸的權(quán)限。本系統(tǒng)因未設(shè)置賬戶充值功能,所以系統(tǒng)會默認新注冊的用戶賬戶余額上有2000元,以便用戶進行股票的購買,拋售操作。3、用戶登錄:如果你已經(jīng)順利完成了注冊,那么系統(tǒng)將會自動跳轉(zhuǎn)到“用戶登錄”頁面,你可以馬上嘗試登錄。這里只需要正確地輸入你的SSN和密碼,就可以成功地查看到你的所持股票信息、上市股票信息、賬戶余額和進行修改個人信息,這個時候,你將有權(quán)對這些模塊進行相關(guān)操作。4、用戶操作:用戶在成功登錄到該系統(tǒng)后,將可以對此模塊進行操作。在此模塊中,用戶可以查看到自己股票持有信息、價格信息,還可以進行相應的股票交易,參照該股票最近的價格波動
21、選擇是否拋售,購買該股票。5、安全退出:如果用戶完成相關(guān)體驗后,想要退出該系統(tǒng),可以點擊“退出”按鈕,頁面會自動跳轉(zhuǎn)到登錄界面。在不重新登錄的情況下,用戶跟普通游客一樣,不能繼續(xù)進行進一步操作。3.3 總體功能模塊該虛擬股票交易系統(tǒng),主要是為了滿足用戶對股票交易的體驗,要求操作簡單快捷、界面整潔大方,因此必須要設(shè)計一個好的程序架構(gòu)和運作流程。從上述系統(tǒng)描述中可以大致了解到整個虛擬股票交易系統(tǒng)的總體功能模塊劃分及流程圖概況。如圖3.3.1-3.3.2所示。3.3.1 總體功能模塊 修改個人信息用戶注冊虛擬股票交易系統(tǒng) 上市股票 安全退出 賬戶余額 所持股票 用戶登陸圖3.3.1 總體功能模塊3.
22、3.2 用戶登錄流程顯示功能頁面圖3.3.2 用戶登錄流程進入管理員登錄頁面3.3.3 管理員登錄流程顯示功能頁面圖3.3.3 管理員登錄流程3.4 系統(tǒng)用例模型用例模型是整個系統(tǒng)開發(fā)過程中的起點,并驅(qū)動建模的全過程。用例模型包括系統(tǒng)的用例圖及用例描述。在設(shè)計系統(tǒng)用例模型之前,首先要識別活動者和用例。4 系統(tǒng)設(shè)計4.1 功能模塊細化由上述的系統(tǒng)分析用例模型可以得出系統(tǒng)的細化功能模塊。4.1.2 股票交易模塊圖4.1.2 股票交易模塊功能細化4.1.3 個人信息修改模塊圖4.1.3 個人信息修改模塊功能細化4.2 數(shù)據(jù)庫設(shè)計4.2.1 數(shù)據(jù)表設(shè)計表名功能說明stock股票的詳細信息表custom
23、er用戶的個人詳細信息表admi管理員的個人信息表buy用戶和股票的關(guān)聯(lián)表sprice股票價格的波動表 1. stock表名stock列名數(shù)據(jù)類型(精度范圍)空/非空約束條件其它說明 id INTNOT NULLIDENTITY(1,1) PRIMARY KEY sname VARCHAR(45) spriceDOUBLE補充說明 2. customer表名customer列名數(shù)據(jù)類型(精度范圍)空/非空約束條件其它說明 id INTNOT NULLIDENTITY(1,1) PRIMARY KEY cname VARCHAR(45) cssn VARCHAR(45) address VARC
24、HAR(45)pw VARCHAR(45) money DOUBLE tele VARCHAR(45)補充說明3.buy表名vet_specialties列名數(shù)據(jù)類型(精度范圍)空/非空約束條件其它說明idINTNOT NULLIDENTITY(1,1) PRIMARY KEYc_idINTNOT NULLforeign key REFERENCES customer(id)s_idINTNOT NULLforeign key REFERENCES stock(id)numINT補充說明 4.admi表名types列名數(shù)據(jù)類型(精度范圍)空/非空約束條件其它說明 idINTNOT NULLID
25、ENTITY(1,1) PRIMARY KEY aname VARCHAR(45)apw VARCHAR(45)補充說明 5.sprice表名owners列名數(shù)據(jù)類型(精度范圍)空/非空約束條件其它說明 id INTNOT NULLIDENTITY(1,1) PRIMARY KEYs_id INT(10)NOT NULLforeign key REFERENCES stock(id)priceDOUBLE補充說明4.3 系統(tǒng)類設(shè)計4.3.1 功能層Dao工具類的設(shè)計該類主要負責數(shù)據(jù)庫的操作,包括了與數(shù)據(jù)庫的連接,對數(shù)據(jù)庫進行增、刪、改、查等操作。主要代碼如下:JDBC連接工廠類(DataBas
26、e)package com.zhanghao.dao;import java.sql.Connection;import java.sql.DriverManager;/連接數(shù)據(jù)庫public class DataBase private static Connection con=null;public static Connection getConnection()throws Exceptionif(con=null)Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection(&quo
27、t;jdbc:mysql:/localhost:3306/zhanghao", "root", "123");return con;2、對于數(shù)據(jù)庫中管理員,用戶,交易,股票表的操作。(由于此操作過多,只選擇CustomerDao進行展示)package com.zhanghao.dao;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Vector;import com.zhanghao.dto.Buy;import com.zhanghao
28、.dto.Customer;public class CustomerDao /登陸驗證ssn ,pwpublic static boolean CusLogin(Customer c)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select * from customer where cssn=? and pw=?");ps.setString(1, c.getSsn();ps.setString(2, c.getPw();ResultSet rs=ps.e
29、xecuteQuery();boolean flag=rs.next();rs.close();ps.close();ps=null;return flag;/添加新用戶public static void addCus(Customer c)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("insert into customer(cname,cssn,address,pw,money,tele) values(?,?,?,?,?,?)");ps.setStrin
30、g(1, c.getName();ps.setString(2, c.getSsn();ps.setString(3, c.getAddr();ps.setString(4, c.getPw();ps.setDouble(5, c.getMoney();ps.setString(6, c.getTele();ps.executeUpdate();ps.close();ps=null;/返回對象為Customer,得到用戶姓名public static Customer getName(Customer c)throws ExceptionPreparedStatement ps=DataBas
31、e.getConnection().prepareStatement("select * from customer where cssn=? and pw=?");ps.setString(1, c.getSsn();ps.setString(2, c.getPw();ResultSet rs=ps.executeQuery();Customer customer=null;while(rs.next()customer=new Customer(rs.getInt("id"),rs.getString("cname"),rs.ge
32、tDouble("money");rs.close();ps.close();ps=null;return customer;/查看所有用戶信息public static Vector<Customer> getCust()throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select * from customer");ResultSet rs=ps.executeQuery();Vector<Customer> v=n
33、ew Vector<Customer>();Customer c1=null;while(rs.next()c1=new Customer();c1.setId(rs.getInt("id");c1.setName(rs.getString("cname");c1.setAddr(rs.getString("address");c1.setSsn(rs.getString("cssn");c1.setPw(rs.getString("pw");c1.setMoney(rs.getDo
34、uble("money");c1.setTele(rs.getString("tele");v.addElement(c1);rs.close();ps.close();ps=null;return v;/首頁查詢賬戶余額的方法public static Vector<Customer> getBuy(int a)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select money from customer wher
35、e id=?");ps.setInt(1, a);ResultSet rs=ps.executeQuery();Vector<Customer> v=new Vector<Customer>();while(rs.next()Customer c=new Customer();c.setMoney(rs.getDouble("money");v.addElement(c);rs.close();ps.close();ps=null;return v;/查找指定用戶手中的賬戶余額/先得到用戶對象/買賣股票操作時,后臺調(diào)用得到賬戶余額的方法pu
36、blic static Customer getBuy1(int a)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select money from customer where id=?");ps.setInt(1, a);ResultSet rs=ps.executeQuery();Customer c=null;while(rs.next()c=new Customer(rs.getDouble("money");rs.close()
37、;ps.close();ps=null;return c;/賬戶余額的變化public static void getSellMoney(Customer c)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("update customer set money=money+? where id=? ");ps.setDouble(1, c.getMoney();ps.setInt(2, c.getId();ps.executeUpdate();ps.close();
38、ps=null;/當用戶購買股票時,賬戶余額發(fā)生變化public static void getBuyMoney(Customer c)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("update customer set money=money-? where id=? ");ps.setDouble(1, c.getMoney();ps.setInt(2, c.getId();ps.executeUpdate();ps.close();ps=null;/得到指
39、定用戶的個人信息public static Vector<Customer> getCus(int a)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select * from customer where id=?");ps.setInt(1, a);ResultSet rs=ps.executeQuery();Vector<Customer> v=new Vector<Customer>();while(rs.next()
40、Customer c=new Customer();c.setId(rs.getInt("id");c.setName(rs.getString("cname");c.setAddr(rs.getString("address");c.setSsn(rs.getString("cssn");c.setTele(rs.getString("tele");c.setPw(rs.getString("pw");v.addElement(c);rs.close();ps.close(
41、);ps=null;return v;/修改指定用戶的個人信息public static void updateCus(Customer c)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("update customer set address=?,tele=? where id=?");ps.setString(1, c.getAddr();ps.setString(2, c.getTele();ps.setInt(3, c.getId();ps.execute
42、Update();ps.close();ps=null;/刪除指定用戶public static void delCus(int a)throws ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("delete from customer where id=? ");ps.setInt(1, a);ps.executeUpdate();ps.close();ps=null;/登陸注冊ssn是否存在public static boolean ifSsn(String s)throw
43、s ExceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("select * from customer where cssn=?");ps.setString(1, s);ResultSet rs=ps.executeQuery();boolean flag=rs.next();rs.close();ps.close();ps=null;return flag;/用戶修改自己的個人信息public static void updateCus1(Customer c)throws Ex
44、ceptionPreparedStatement ps=DataBase.getConnection().prepareStatement("update customer set cname=?,pw=?, address=?,tele=? where id=?");ps.setString(1, c.getName();ps.setString(2, c.getPw();ps.setString(3, c.getAddr();ps.setString(4, c.getTele();ps.setInt(5, c.getId();ps.executeUpdate();ps.
45、close();ps=null;4.3.2 模型層Dto工具類的設(shè)計模型層中封裝了數(shù)據(jù)庫中的所有表對象并建立各個對象的靜態(tài)調(diào)用方法,以便在控制層中很方便的建立新對象(此處列舉管理員和用戶對象說明)Admi(管理員對象)package com.zhanghao.dto;public class Admi private String name;private int pw;public Admi() super();public Admi(String name, int pw) super(); = name;this.pw = pw;public String getNam
46、e() return name;public void setName(String name) = name;public int getPw() return pw;public void setPw(int pw) this.pw = pw;2、Customer(用戶對象)package com.zhanghao.dto;public class Customer private String name;private String ssn;private String addr;private String pw;private int id;private dou
47、ble money;private String tele;public Customer(String name,String pw,String addr,String tele ,int id) super();this.addr = addr;this.id = id; = name;this.pw = pw;this.tele = tele;public Customer( int id,String addr, String tele) super();this.addr = addr;this.id = id;this.tele = tele;public Cu
48、stomer(String name, String ssn, String addr, String pw,double money, String tele) super();this.addr = addr; = name;this.pw = pw;this.ssn = ssn;this.money=money;this.tele = tele;public Customer(double money) super();this.money = money;public Customer(int id, double money) super();this.id = i
49、d;this.money = money;public Customer(int id, String name,double money) super();this.id = id; = name;this.money=money;public Customer(String name) super(); = name;public Customer() super();public Customer(String pw, String ssn) super();this.pw = pw;this.ssn = ssn;public Customer( St
50、ring name, String ssn, String addr, String pw) super();this.addr = addr; = name;this.pw = pw;this.ssn = ssn;public String getName() return name;public void setName(String name) = name;public String getSsn() return ssn;public void setSsn(String ssn) this.ssn = ssn;public String get
51、Addr() return addr;public void setAddr(String addr) this.addr = addr;public String getPw() return pw;public void setPw(String pw) this.pw = pw;public int getId() return id;public void setId(int id) this.id = id;public double getMoney() return money;public void setMoney(double money) this.money = mon
52、ey;public String getTele() return tele;public void setTele(String tele) this.tele = tele;4.3.3 控制層Servlet的設(shè)計控制層中的servlet都是接收JSP頁面中提交的數(shù)據(jù),根據(jù)需求調(diào)用相應的方法來處理數(shù)據(jù),并連接到下一個JSP展示頁面(此處列舉管理員刪除用戶和用戶購買股票的功能)1、DelServlet(管理員刪除用戶)package com.zhanghao.servlet;import java.io.IOException;import java.io.PrintWriter;import
53、 javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.zhanghao.dao.BuyDao;import com.zhanghao.dao.CustomerDao;public class DelServlet extends HttpServlet public DelServlet() super();
54、public void destroy() super.destroy(); / Just puts "destroy" string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 葫蘆島市2025年度房屋買賣稅費優(yōu)惠與政策應用合同3篇
- 2025版新能源汽車動力電池回收利用技術(shù)研發(fā)合同2篇
- 二零二五版高科技研發(fā)中心合伙企業(yè)退股合同3篇
- 專屬授權(quán)合作細則合同(2024年度)一
- 二零二五年度船舶建造與船舶維修配件供應合同范本4篇
- 2025年度油氣田打井設(shè)備租賃合同7篇
- 二零二五年度外墻涂料施工合同爭議解決協(xié)議2篇
- 2025年度煤礦安全生產(chǎn)監(jiān)管服務(wù)二零二五版合同4篇
- 二零二五版物流包裝材料研發(fā)生產(chǎn)合同3篇
- 2025年國際知識產(chǎn)權(quán)授權(quán)貿(mào)易合同標準范本4篇
- 寒假作業(yè)一年級上冊《數(shù)學每日一練》30次打卡
- 2024-2025學年九年級化學上冊 第二單元 單元測試卷(人教版)
- 2024年公共衛(wèi)生基本知識考試題庫(附含答案)
- 2024多級AO工藝污水處理技術(shù)規(guī)程
- 2024年江蘇省鹽城市中考數(shù)學試卷真題(含答案)
- DZ∕T 0287-2015 礦山地質(zhì)環(huán)境監(jiān)測技術(shù)規(guī)程(正式版)
- 2024年合肥市廬陽區(qū)中考二模英語試題含答案
- 質(zhì)檢中心制度匯編討論版樣本
- 藥娘激素方案
- 提高靜脈留置使用率品管圈課件
- GB/T 10739-2023紙、紙板和紙漿試樣處理和試驗的標準大氣條件
評論
0/150
提交評論