




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章引言1.1 設計開發的意義隨著ernet 的發展,電子商務越來越流行。很多企業都已不滿足于一個簡單的僅僅能夠發布信息的靜態,現代企業需要的是一個功能強大的,能提供完善的電子商務服務的動態商務。同時人們的生活方式也在隨著發生改變,傳統的購物方式已不能滿足人們的需求,人們越來越傾向于網上購物,用戶可以在網上搜索到自己想要的各種商品,初步讓人們體會到了足不出戶,便可隨意購物的。1.2 所設計應用系統的任務及目標JSP 即 Java Servage,是 Sun 公司推出的一種開發技術,借助 Java,它可數據庫課以在 Servlet 和 JavaBean 的支持下,完成功能強大的 Web 應用程
2、序。所以,在程設計中,我采用了 JSP 作為開發工具,構建了一個能實現基本的電子商務的小型動態商網站網店系統。該系統能實現用戶的、登錄功能;能夠實現商品的查詢,訂購等功能。該系統基本上具備一個網上商品銷售系統應該具備的常用功能,該設計項目基本上體現了構建一個動態商務所需要的技術,可以說,目前的大型商務也就是這個小型在內容上的擴充和完善。在這次的設計中,我和同學共同合作完成,共同完成需求分析和數據庫的設計,后期的 JAVA 設計由我完成,頁面設計由完成。1.3 設計開發及運行的軟硬件環境硬件:PC機,服務器:系統客戶端運行在 Windows下,服務器端可以運行在 Windows或者 Unix下,
3、sql server2005,tomcat 6.0, myEclipes第二章系統分析與設計2.1 系統需求分析通過對電子商務及網店的、分析,本系統應該具有以下功能:友好的操作界面,能保證系統的易用性。規范、完善的基礎信息設置。分類詳盡,可按不同類別查看商品信息。按大類及名稱進行模糊查詢。實現網上購書。2.2 數據庫概念結構設計針對網店系統的需求分析,得出如下需求信息。一個用戶可以多本。一個用戶對應一張訂單。一個列表對應多張訂單。針對本系統功能分析,總結出如下的需求信息。用戶,包括數據項:用戶ID、用戶名、。,包括數據項:、名、價格、介紹。訂單列表,包括數據項:訂單、購書數量。、下單時間。訂單
4、,包括數據項:訂單、用戶2.2.1 數據庫概念結構設計從本系統中規劃出的實體有:用戶信息實體、管理員信息實體、體、訂單實體、訂單列表實體。實體之間關系的E-R 圖如圖 2.1 所示。管理員實體的E-R 圖,如圖 2.2 所示。分類實體的E-R 圖,如圖 2.3 所示。用戶信息實體的E-R 圖,如圖 2.4 所示。實體的E-R 圖,如圖 2.5 所示。訂單實體的E-R 圖,如圖 2.6 所示。訂單列表實體的E-R 圖,如圖 2.7 所示。實體、分類實提交受理屬于管理屬于管理屬于圖 2.1 實體之間的E-R 圖用戶名分類名稱分類圖 2.2管理員實體的 E-R 圖圖 2.3分類實體E-R 圖用戶名地
5、址真名用 戶時間IP圖 2.4 用戶實體 E-R 圖分類管理員分類訂單列表管理管理員訂單用戶名稱分類封面作者剩余數量圖 書總數量內容介紹價格圖 2.5 書實體 E-R 圖用戶時間訂單總價格訂單IP 地址內容是否付款是否發貨圖 2.6 訂單實體 E-R 圖用戶號訂單號訂單列表購書數量圖 2.7 訂單列表實體的 E-R 圖2.3 數據庫邏輯結構設計表 4.1 為信息列表,書店現有的表 4.1信息。Book 表列名數據類型長度允許空注釋ID4BookNamevarchar40否名稱BookClass4否分類AuthorVarchar25是作者PublishVarchar150是BookNoVarch
6、ar30是書號Contenttext300是內容Pricefloat8是價格Amount4是總數量Leav_number4是剩余數量RegTimeda ime8是時間Picturevarchar60是封面表 4.2 為書店管理員信息表,表 4.2管理員的帳號和。BookAdmin 表列名數據類型長度允許空注釋AdminuserVarchar20否管理員AdminPassVarchar20否管理員表 4.3 為用戶信息表,用戶的基本信息。表 4.3 用戶表列名數據類型長度允許空注釋ID2否用戶UserNameVarchar50否用戶名passWordVarchar50否NamesVarchar5
7、0否真名SexVarchar50是AddressVarchar50是地址PhoneVarchar50是tVarchar50是Varchar50是電子郵件RegTimeDa ime50是時間RegIPAddressvarchar50是IP 地址表 4.4 為訂單總表,某個用戶的訂單總信息。表 4.4 訂單總表列名數據類型長度允許空注釋ID4否總訂單OrderID4否訂單號BookNo4否書號Amount4是數量表 4.5 為訂單表,但張訂單的具體信息。表 4.5 訂單表列名數據類型長度允許空注釋ID4否訂單 IDOrderIDVarchar50否總訂單UserIdVarchar50否用戶 IDS
8、ubmitTimeDa ime8是提交時間ConsignmentTiDa ime8是時間meTotalPriceFloat16是總價格contentText300是描述IpaddressVarchar50是Ip 地址IspayoffVarchar50是是否付款IsAddressvarchar20是是否發貨表 4.6 為分類表,書店現有的分類。表 4.6 Bookclass 表列名數據類型長度允許空注釋IDVarchar30否分類Claamevarchar30否分類名2.4 數據庫創建create table My_Book(-表Id IDENTITY (1,1)primary NULL,-ke
9、y , -類別序列號主鍵BookName varchar(40) NOT名BookClassnot null,Author varchar(25) NULL,Publish varchar(150) NULL, BookNo varchar(30) NULL,-作者-書號-內容介紹-書價Content varchar(4000)Prince float NULL,NULL,Amount Leav_number);NULL,NULL,-總數量-剩余數量create Id Clatable My_BookClass(-類別表 IDENTITY (1, 1) Not Null primary key
10、,-類別序列號主鍵ame varchar(30) not null-類別名);create table My_BookAdminuser(-管理員表AdminUser varchar(20), AdminPass varchar(50);create table My_Users (-管理員名-管理員-用戶表Id IDENTITY (1, 1)primarynull,key, -序列號主鍵-用戶名-用戶UserName varchar(20) notPassWord varchar(50) Names varchar(20),Sex varchar(2), Address varchar(15
11、0), Phone varchar(25),t varchar(8),varchar(50),notnull,-用戶聯系-用戶-用戶聯系地址-用戶-用戶聯系-用戶電子郵件RegTimeDateTime,-用戶-用戶時間時IP地址RegIpAddress varchar(20);create table My_Indent(-購物車訂單號表primary key, -序列號主鍵Id IDENTITY (1, 1)varchar(20) not not null,IndentNoUserId null,-訂單-用戶序列號-提交訂單時間-交貨時間SubmitTime datetime not nul
12、l,ConsignmentTime varchar(20),TotalPrice float,content varchar(400), IPAddress varchar(20),-總金額-用戶備注-下單時IP-用戶是否已付款-是否已發貨IsPayoff IsSales );create table null, nullMy_IndentList(-訂單列表IdIDENTITY (1, 1) primarykey,-序列號主鍵IndentNo BookNo Amount ); not null, not null,-訂單號表序列號-訂貨數量表序列號系統總體結構設計系統設計目標對于像電子商務這
13、樣的數據流量特別大的網絡管理系統,必須要滿足使用方便、操作靈活等設計要求。本系統在設計時應該滿足以下幾個目標:采用人機的操作方式,界面設計美觀友好、信息查詢靈活、方便、快捷、準確、數據安全可靠。全面展示書店內所有的,并可展示及特價。為顧客提供一個方便、快捷的采用模糊查詢查詢數據。實現網上購物。信息查詢功能。商品銷售決策。,以方便顧客了解本商城內的熱銷商品及幫助企業者做出相應的查看商城內的公告信息。用戶隨時都可以查看自己的訂單。對用戶輸入的數據,系統進行嚴格的數據檢驗,盡可能排除人為的錯誤。系統最大限度地實現了易性和易操作性。系統運行穩定、安全可靠。2.5.2 系統設計本系統采用三層架構設計4,
14、它的工作原理如圖 2.8 所示。圖 2.8 三層結構原理圖采用三層構架以后,用戶界面層通過的接口向業務層發送請求,業務層按自己的邏輯規則將請求處理之后進行數據庫操作,然后將數據庫返回的數據封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數據庫的結構,它只要即可。2.5.3 系統功能模塊劃分與業務層之間的接口根據需求分析及三層架構設計的,設計出客戶系統功能如圖 2.9圖 2.9 客戶端系統管理的系統功能圖如圖 2.10管理員登陸用戶管理現有圖書添加新圖添加圖書訂單管理用戶管理查看圖書資料修改圖書資料刪除圖書添加新圖書添加圖書分類刪除圖書分類查看訂單詳細刪除訂單查看用戶資料查看用戶詳細
15、修改用戶資料刪除用戶購買察看圖書詳細資購買查看訂單詳細繼續購書清空購物車提交購物車刪除已經選購的修改購買數量在線購書查看購物察看訂單圖書查詢購買察看圖書用戶注冊購書用戶登錄圖 2.10管理系統功能圖第三章系統開發及實現我主要負責的是支持各模塊的 JAVA 類的編寫。3.1 數據庫連接 Bean 的編寫數據庫操作的 JavaBean 是一個公共類,放在 bookshop 下的 util 包中,通常包括連接數據庫的方法 getConnection、執行查詢語句的方法 executeQuery、執行更新操作的方法 executeUpdate、關閉數據庫連接的方法 close。其實現代碼如下:pack
16、age bookshop.util;/將該類保存到 package bookshop.util 包中/*/數據庫連接包 Copyright: wxy Copyright (c) 2007Company:Ling Du bookshop online import java.sql.*; public class DataBase public Connection conn;/導入提供基本的數據庫編程服務的包/定義一個 Connection 對象public Sement stmt;/定義一個 Sement 對象public publicpublicResultSet rs=null; Str
17、ing sqlStr=;DataBase() /定義一個 ResultSet 對象/定義一個字符串,用來保存 SQL 語句this.connect();publicconnect()tryClass.forName(com.jdbc.sqlserver.SQLServerDriver).newInstance();/加載 SQL Server 2005 數據庫驅動String url =jdbc:sqlserver:/localhost:1433;DatabaseName=bookshop;/保存連接數據庫的 URL 地址的變量conn=DriverManager.getConnection(
18、url,”sa”,”);/建立數據庫連接Sement stmt= conn.createScatch(Exception ee)ement ();System.out.prln(connect db error:+ee.getMessage();/檢測數據庫連接是否成功return false;return true;public sic void main(String args) tryDataBase db = new DataBase(); db.connect();catch(Exception e)e.prStackTrace();5.3.2 字符處理 Bean 的編寫在 JSP
19、開發中經常會涉及有關字符串的處理,例如:把字符串轉換成適合于網頁顯示的文本、八字符串轉換成適合 SQL 語句的字符串等等,所以把這些字符串處理方法集中到一個類中。這也是一個公共類3。關鍵代碼如下:package bookshop.util;/* 負責字符串的處理 */importimportjava.lang.*;java.util.*;publicclass dataFormat public dataFormat() /*把字符串轉換成適合于網頁顯示的文本param sreturn*/public sic String toHtml(String s) if (s=null) s=strR
20、epla s=strRepla s=strReplas=strReplareturn s;,&,&;);,);,);s=parseReturn(s,n&return s;&;&;&;);/*把字符串sBody中的sFrom用sTo替換paramparam paramsBodysFrom sToreturn*/public sic String strReplatring sBody, String sFrom, String sTo) i,j,k,l;if (sBody=null | sBody.equals() return ;i =j =k =0;sFrom.length(); sTo.l
21、ength();StringBuffer sss = new StringBuffer(sBody.length();b=true;l = i;while (sBody.indexOf(sFrom,i)!=-1) i = sBody.indexOf(sFrom,i); sss.append(sBody.substring(l,i); sss.append(sTo);i += j; l = i;sss.append(sBody.substring(l); return sss.toString();/* 把字符串中的rn轉換成nparamparam*/ public sString sBody
22、: 要進行替換操作的字符串String sEndwith : 要替換成為的字符串ic String parseReturn(String sBody, StringsEndwith) StringTokenizer t = new StringTokenizer(sBody, rn);StringBuffer sss = new StringBuffer(sBody.length();b=true;if (sEndwith.trim().equals() sEndwith=n; while (sMoreTokens() String s=t.nextToken();s=s.trim();whi
23、le (s.startsWith( ) s=bstring(2);if (!s.equals() if (b b else) =false;sss.append(sEndwith);sss.append(s);return sss.toString();/*將字符串格式化成 HTML 代碼輸出只轉換特殊字符,適合于 HTML 中的表單區域param str 要格式化的字符串return 格式化后的字符串*/public sic String toHtmlInput(String str)if (str = null)return null;String html = new String(st
24、r);html htmlhtml= strReplace(html,= strReplace(html,= strReplace(html,&,&;););return html;/*將普通字符串格式化成數據庫認可的字符串格式*param str 要格式化的字符串return 合法的數據庫字符串*/public sic StringtoSql(String str) String(str);ql, , );String sql = newreturn strRepla3.3 實現用戶實體的 Bean1)用戶實體 Bean,這個類是對用戶實體的抽象,它包含了用戶實體的所有屬性及用戶對象初始化構造
25、方法。它們都是和數據庫里的 shop_user 表相對應的,在這個 Bean 里封裝的方法也主要是對這個8表進行操作.這些屬性都被定義為類的私有成員,外界不可privaong id;privateprivate privateStringString StringuserName;usassword;Names;private privateprivateString StringStringSex; Address; Phone;t;private private privateprivateString String StringStringRegTime;RegIpAddress;2)構
26、造函數里對以上私有成員進行初始化:Public user()Id=0;UserName=”; Password=”; Names=”;Sex=”;Address=”; Phone=”;t=”;=”;RegTime=”;RegIpAddress=”;.其中的 seter 和 geter 方法用來設置和獲取以上各屬性的值。在 jsp 頁面中通過3.4 實現實體的 Bean引入。應用面象的把具有共性的實體抽象成一個類。這個Bean 就是對實體的抽象,對象的初始化構造方法,里面的屬性和表 Book 表對應8。部分代碼如他包含了下:package/* */實體的所有屬性及bookshook;類 publ
27、ic class book priva private private private private private private private private private private privateprivateong Id;/ID序列號String BookName;BookClass;/書名/類別類別名String String String StringStringclaame;Author; Publish; BookNo ;Content/作者/書號/內容介紹/書價/總數量/剩余數量/登記時間;float Prince ;Amount ; Leav_number;St
28、ring RegTime ;String picture ;/樣圖文件的名稱/*/ public的初始化book() Id = 0;BookName = ;BookClass = 0;claame = ;Author = ; Publish = ; BookNo = ; Content = ; Prince = 0;Amount = 0;Leav_number = 0; RegTime = ;publicvoid setId(long newId)this.Id = newId;publiclong getId()其中的 seter 和 geter 方法用來設置和獲取以上各屬性的值。在 jsp
29、 頁面中通過引入。3.5 實現分類實體 Bean這個類是對分類實體的抽象,他包含了分類實體的所有屬性及分類對象的初始化構造方法,它的屬性和表Bookclass對應,部分代碼如下:package booksh/*ook;* 分類類*/public class bookclass privateId;/ID序列號private String Cla public bookclass()Id = 0;ame;/類別Claame =;public bookclass(Id = newId; Claame =newId, String newname) newname;3.6 實現訂單實體 Bean這個
30、類是對訂單實體的抽象,它包含了訂單實體的所有屬性及訂單對象的初始化構造方法。客戶每次一種商品都會產生一次訂購單,它包括訂單號,所的書號,所這種書的數量等,這些了這個類的私有屬性,這些屬性和表Order對應。package bookshook;/* 訂單類 */代碼如下:publicclass order priva private priva private private private private private privateprivateong Id;String orderId; ong UserId;String SubmitTime;/ID序列號/訂單/用戶序列號/提交訂單時
31、間String ConsignmentTime;float TotalPrice;/交貨時間/總金額/用戶備注/下單時IP/用戶是否已付款/是否已發貨StringStringcontent; IPAddress; IsPayoff; IsSales;public order()/在構造方法里初始化變量Id = 0;orderId = ; UserId = 0; SubmitTime = ; ConsignmentTime = TotalPrice = 0; content = ; IPAddress = ; IsPayoff = false;IsSales = false;public lon
32、g getId() return Id;其中的 seter 和 geter 方法用來設置和獲取以上各屬性的值。在 jsp 頁面中通過引入。3.7 實現訂單列表的 Bean這個類是對訂單列表實體的抽象,它包含了訂單實體的所有屬性及訂單列表對象的初始化構造方法,它的屬性和表 Allorders 對應,部分代碼如下:package bookshook;/* Title: */public class allorder priva priva privaprivateong Id;ong orderId;ong BookNo; Amount;/ID序列號/訂單號表序列號/表序列號/訂貨數量public
33、 allorder() Id = 0;orderId = 0;BookNo = 0;Amount = 0;public long getId() return Id;其中的 seter 和 geter 方法用來設置和獲取以上各屬性的值。在 jsp 頁面中通過 引入。3.8 實現購物車實體的 Bean在現實生活中,人們去超市買東西,都是把商品放在一個購物籃里,等到把所有要買的東西選購完畢后,一起拿到收銀臺前付錢。我在程序里定義的購物車實體就是模擬這個功能.作為購物車,購物時間,所購書的總價格都是必不可少的,這個類是對購物車實體的抽象,它包含了購物車的所有屬性及購物車對象的初始化構造方法。部分代碼
34、如下:package bookshook;/* Title: */public class shopcar privaong bookId;/ID/選購數量privatequanlity;public shopcar() bookId = 0;quanlity = 0;public long getBookId() return bookId;3.9 管理用戶登錄 Bean 的編寫這是一個以客戶為中心的交易,只有成為了系統的合法用戶才有使用本系統的權利,因此需要檢測每個用戶的,管理用戶登錄這個 Bean:Login.java 就是要完成這能。圖 3.1 為 Login 類的類圖其中只是關鍵的幾
35、個方法。圖 3.1從圖 5-1 中可以看出 Login 具有的屬性和方法,其中 login() :void 構造函數,getismin 為取得屬性 isadmin 的值的方法,即判斷登陸用戶是否是管理員。其它的是設置和獲取屬性的方法。其中有兩個重要的方法介紹如下:getSql()方法根據用戶的不同獲得不同的查詢 SQL 語句。判斷登陸用戶是否是管理員,如果是則從管理員信息表中查詢數據,否則則從普通用戶表中查詢數據。實現代碼如下:/*獲得查詢用戶信息的 sql 語句return*/public String getSql() if (isadmin) sqlStr = select * from
36、 BookAdmin where adminuser = + dataFormat.toSql(username) + and adminpass = + dataFormat.toSql(passwd) + ;else sqlStr = select * from shop_user where username = + username + and password = + passwd + ;return sqlStr;Execute()方法/*執行查詢returnthrows java.lang.Exception*/publicexcute() throws Exceptionfla
37、g = false;DataBase db = new DataBase();db.connect();/獲取一個數據庫連接LoginExecute(): getIsadmin(): getSql():StringIsadmin: Passwd:String userId:longSement stmt = db.conn.createSement ();rs = stmt.executeQuery(getSql();/rs 里返回查詢結果集if (rs.next()if (!isadmin)userid = rs.getLong(id);flag = true;rs.close(); ret
38、urn flag;從以上代碼中可以看出,構造數據庫連接 DataBase 類的對象,調用其 connect()方法獲得連接,調用 getsql()方法獲得 SQL 語句,然后從數據庫中查得用戶所需信息。3.10 管理該類負責Bean 的編寫的管理,包括的修改、查詢、刪除、和添加等,圖 5.2 為該類的類圖5,其中省去了部分方法,這里只介紹幾個重要的方法。圖 3.2 管理op_book 類的類圖1)getRequest()方法該方法負責從頁面接收到的表單資料分解,并設置true 表示成功,反之表示失敗。部分代碼如下:實體的相應屬性,它的返回值為類型,publicgetRequest(javax.
39、servlet.http.HttpServletRequest newrequest) flag = false;tryrequest = newrequest;String ID = request.getParameter(id); long bookid = 0;trybookid = Long.parseLong(ID);catch (Exception e)abooks.setId(bookid);String bookname = request.getParameter(bookname); if (bookname=null | bookname.equals()Book_se
40、arch(): Delete(): Getonebook(): Getsql():String Getsqlflag(): Insert():Op_booksqlStr:String abooks:bookBooklist:Vector Page: Pagecount: Pagesize:Recordcount:longbookname = ;sqlflag = false;abooks.setBookName(to_String(bookname); String author = request.getParameter(author); if (author=null | author.
41、equals()author = ; sqlflag = false;abooks.setAuthor(to_String(author);String publish = request.getParameter(publish); if (publish=null)publish = ;abooks.setPublish(to_String(publish);String bookclass = request.getParameter(bookclass);bc =egarse(bookclass);abooks.setBookClass(bc);String bookno = requ
42、est.getParameter(bookno); if (bookno = null)bookno = ;abooks.setBookNo(to_String(bookno);String picture = request.getParameter(picture); if (picture = null)picture = images/01.gif;abooks.setPicture(to_String(picture); float price;tryprice =new Float(request.getParameter(price).floatValue(); catch (E
43、xception e)price = 0; sqlflag = false;abooks.setPrince(price); amount;tryamount = newcatch (Exception e)eger(request.getParameter(amount).Value();sqlflag = false;amount = 0;abooks.setAmount(amount);String content = request.getParameter(content); if (content = null)content = ;abooks.setContent(to_Str
44、ing(content); if (sqlflag)flag = true;return flag;catch (Exception e)return flag;2)book_search()方法該方法負責查詢,包括的分類,分頁、關鍵字查詢。首先通過 getRequest()方法獲得頁面表單參數值,根據參數值判斷是何種查詢,然后根據相應的 SQL 的語句從數據庫里查詢相應的值。這里需要用到分頁技術。部分代碼如下:/*完成查詢,包括分類,分頁查詢param res returnthrows java.lang.Exception*/publicbook_search(HttpServletReq
45、uest res) throws Exception DataBase db = new DataBase();db.connect();Sement stmt = db.conn.createSement ();request = res;String String Stringif (claPAGE = request.getParameter(page);cla= request.getParameter(cla/頁碼);/分類ID號/查詢keyword = request.getParameter(keyword);=null) cla=;if (keyword=null) keywo
46、rd = ;keyword = to_String(keyword).toUpperCase(); try page =egarse(PAGE);catch (NumberFormatException e) page = 1;/取出數if (!cla.equals() & keyword.equals() ) sqlStr = select count(*) from book where bookclass=+cla+ ;else if (!keyword.equals() if (cla.equals()sqlStr = select count(*) from book where u
47、pper(bookname) like %+keyword+ % or upper(content) like % + keyword +%; else sqlStr = select count(*) from book+ and (upper(bookname) upper(content) like % + else where bookclass= like % +keyword+keyword + %);+ cla% or+sqlStr = select count(*) from book;rscount = pageSize; try ResultSet rs1 = stmt.e
48、xecuteQuery(sqlStr);if (rs1.next() recordCount = rs1.get rs1.close();catch (SQLException e)(1);System.out.prreturn false;ln(e.getMessage();/設定有多少pageCount if (recordCount 1)pageCount = 0;elsepageCount = ()(recordCount - 1) / pageSize + 1;/檢查查看的頁面數是否在范圍內 if (page pageCount)page = pageCount;rscount =
49、(/sql為倒序取值) recordCount % pageSize;/ 最后一頁數sqlStr = selecta.id,a.bookname,a.bookclass,b.claame,+a.author,a.publish,a.bookno,a.content,a.prince,a.amount,+ a.Leav_number,a.regtime,a.picture from book a,bookclass b+ where a.Bookclass = b.Id ;if (!cla.equals() & keyword.equals() ) /如果類別不為空,非查詢 if (page =
50、 1)sqlStr order else sqlStr= sqlStr + and a.bookclass= + claby a.Id desc;+ += sqlStr + and a.bookclass= + cla+ limit +(recordCountSize * page)+,+(recordCountSize* (1);else if (!keyword.equals() /如果是查詢資料if (page = if (!clasqlStrcla1).equals() /查詢某一類= sqlStr + and a.Bookclass= + and (upper(a.bookname)
51、 like % +keyword+ % or upper(a.content) like % +keyword else sqlStr = keyword+ %) order by a.Id desc;/查詢所有類sqlStr + and (upper(a.bookname) like % + % or upper(a.content) like % +keyword +%) order by a.Id desc; else if (!clasqlStrcla.equals()= sqlStr + and a.Bookclass= + and (upper(a.bookname) like %
52、 +keyword+ % or upper(a.content) like % +keyword + %) limit +(recordCountSize * page)+,+ (recordCountSize * (1); else sqlStr = sqlStr + and (upper(a.bookname) like % + keyword+ % or upper(a.content) like % +keyword + %) limit +(recordCountSize * page)+,+ (recordCountSize * (1);else /非查詢,也類瀏覽if (page
53、 = 1)sqlStr = sqlStr + order by a.Id desc limit 0,+pageSize; else sqlStr = sqlStr + limit +(recordCountSize * page)+,+ (recordCountSize * (1);try rs = stmt.executeQuery(sqlStr); booklist = new Vector(rscount); while (rs.next()book book = new book(); book.setId(rs.getLong(id);book.setBookName(rs.getS
54、tring(bookname);book.setBookClass(rs.get(bookclass);book.setClaame(rs.getString(claame);book.setAuthor(rs.getString(author); book.setPublish(rs.getString(publish); book.setBookNo(rs.getString(Bookno);book.setContent(rs.getString(content);book.setPrince(rs.getFloat(prince);book.setAmount(rs.get(amoun
55、t);book.setLeav_number(rs.get(leav_number);book.setRegTime(rs.getString(regtime);book.setPicture(rs.getString(picture); booklist.addElement(book);rs.close(); return true;catch (Exception e)System.out.pr return false;ln(e.getMessage();3)insert()方法該方法負責的添加,返回類型為型,true表示成功,反之失敗。首先從對象中獲得屬性,組裝相應的SQL語句并執行
56、,返回執行結果。代碼如下:/*完成return添加throws java.lang.Exception*/publicsqlStr =insert() throws Exception inserto book (Bookname,Bookclass,Author,Publish,Bookno,+Content,Prince,Amount,Leav_number,Regtimcture) values (;sqlStr sqlStr sqlStr sqlStr sqlStr sqlStr sqlStr sqlStr sqlStr sqlStrsqlStr=sqlStr sqlStr sqlSt
57、r sqlStr sqlStr sqlStr sqlStr sqlStr sqlStr sqlStrsqlStr+dataFormat.toSql(abooks.getBookName() + ,; abooks.getBookClass() + ,; dataFormat.toSql(abooks.getAuthor() + ,; dataFormat.toSql(abooks.getPublish() + ,; dataFormat.toSql(abooks.getBookNo() + ,;dataFormat.toSql(abooks.getContent() + ,;abooks.ge
58、tPrince() abooks.getAmount() abooks.getAmount()now()+ ,;+ ,;+ ,;+ ,;abooks.getPicture()+);trySystem.out.pr(sqlStr);DataBase db = new DataBase();db.connect();stmt =db.conn.createS stmt.execute(sqlStr); return true;catch (SQLException sqle)ement ();System.out.pr(sqle.getMessage();return false;的修改和刪除方法
59、和上面類似,省略講解。3.11 管理分類 Bean由于分類實體的存在,需要對進行分類查詢、添加、刪除等操作方法,為了方便,把這些方法集合到一個類中,即 Op_bookclass 類,圖 3.3 為該類的類圖,其中也省略了部分方法。該類的方法和管理Bean 中的方法類似,所以在次就不多講。圖 3.3 管理分類的 Op_bookclass 類圖3.12 管理用戶的 Bean為了使用上的方便,我把對用戶的管理,包括用戶的添加、刪除、修改、查詢等集即 Op_user 類。圖 3.4 為該類的類圖,其中只是關鍵的幾個方法。一個管理類,圖 3.4 管理用戶 op_user 類的類圖有類圖可以看出該類具有以
60、下屬性:private user user = new user();/新的用戶對象private javax.servlet.http.HttpServletRequest request;/建立頁面請求private Vector userlist;/顯示用戶列表向量數組/顯示的頁碼/每頁顯示的/頁面總數/查詢的private private privateprivapage = 1; pageSize=8; pageCount =0;ong recordCount =0;數總數private String message = ;private String username = ;/出錯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材行業產業鏈價值鏈分析考核試卷
- 古代雕塑考試題及答案
- 國稅調研面試題及答案
- javaswitch面試題及答案
- 網絡大賽試題及答案
- 麥當勞面試題及答案
- 家用紡織品市場供應鏈的動態風險管理機制考核試卷
- 跳舞小熊測試題及答案
- 城市大腦筆試題及答案
- 2025年福建省中考英語真題(解析版)
- 行車安全風險點告知牌
- 大學生勞動教育教程全套PPT完整教學課件
- 鐵路工程施工監理規劃
- 嬰幼兒語言發育篩查量表優質資料
- 《屹立在世界的東方》示范課教學課件【人教部編版小學道德與法治五年級下冊】
- GB/T 16924-2008鋼件的淬火與回火
- 基礎護理學:肌內注射
- 應急值守專題培訓課件
- DB23T 1318-2020 黑龍江省建設施工現場安全生產標準化實施標準
- 新加坡公司法-英文版
- 醫院管理腎內科腹膜透析護理常規
評論
0/150
提交評論