版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上大理學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)報(bào)告班級(jí): 2011級(jí)計(jì)算機(jī)科學(xué)與技術(shù)2班 學(xué)號(hào): 姓名: 董卜菡 系統(tǒng)名稱: 網(wǎng)上書店系統(tǒng) 總分: 目錄2一、需求分析1.背景簡(jiǎn)介在如今互聯(lián)網(wǎng)快速發(fā)展的時(shí)代,網(wǎng)絡(luò)以其快捷高速的方式改變著我們的生活方式,越來(lái)越多的人開始意識(shí)到Internet所蘊(yùn)含的無(wú)限商機(jī)和經(jīng)濟(jì)價(jià)值,并積極投身于電子商務(wù)。而網(wǎng)上書店就是這商業(yè)行為電子化的最典型例子。網(wǎng)上書店具有很多新的特性,例如:其經(jīng)營(yíng)成本要比傳統(tǒng)書店低得多、不需要支付昂貴的店鋪?zhàn)饨鸷脱b修費(fèi)用、不需要大量的資金用于庫(kù)存管理、同時(shí)可以實(shí)現(xiàn)24小時(shí)營(yíng)業(yè),不需要營(yíng)業(yè)員,可以依靠數(shù)據(jù)庫(kù)更人性化的
2、提供服務(wù)。網(wǎng)上書店在價(jià)格、時(shí)效性、品種、查詢方式等方面的優(yōu)勢(shì)使用戶只要使用鼠標(biāo)點(diǎn)擊瀏覽、查詢下訂單,就能送貨上門。綜上所述,網(wǎng)上書店已經(jīng)成為互聯(lián)網(wǎng)時(shí)代購(gòu)書者的最佳選擇,必將獲得巨大的成功。2.功能需求對(duì)于網(wǎng)上書店系統(tǒng)中普通用戶、會(huì)員和管理員的具體功能描述如下:(1)普通用戶1)瀏覽圖書、按類別查詢圖書、查看圖書詳細(xì)信息。2)注冊(cè)為會(huì)員。普通用戶用例圖2-1(2)會(huì)員1)瀏覽圖書、按類別查詢圖書、查看圖書詳細(xì)信息。2)加入購(gòu)物車、修改購(gòu)物車、訂購(gòu)圖書、生成訂單、查看訂單等。3)查看、修改個(gè)人信息(登錄密碼,常用發(fā)貨地址,發(fā)票抬頭管理等)會(huì)員用例圖2-2(3)管理員1)瀏覽圖書、按類別查詢圖書、查
3、看圖書詳細(xì)信息。2)查看訂單、處理訂單進(jìn)行發(fā)貨處理等。3)查看、修改個(gè)人信息。4)更新圖書信息,如增加、刪除圖書、更新庫(kù)存量、商品名稱、增加圖書的屬性列等。管理員用例圖2-33.系統(tǒng)功能圖從上述的功能分析可以得出,網(wǎng)上書店系統(tǒng)中需要有會(huì)員、圖書、訂單等信息。對(duì)于會(huì)員,需要有會(huì)員的賬號(hào)、密碼、姓名、郵箱、電話、聯(lián)系地址等屬性;對(duì)于圖書,需要有書名、圖書類別、出版社、作者、圖書概況、定價(jià)、折扣、庫(kù)存數(shù)量等屬性;其中圖書可以有折扣(如8折、7.5折等),實(shí)際售價(jià)由定價(jià)乘以折扣,再除以10計(jì)算得出;對(duì)于一個(gè)訂單,需記錄會(huì)員的訂購(gòu)日期、管理員進(jìn)行發(fā)貨的發(fā)貨日期、訂購(gòu)總價(jià)等屬性,其中訂購(gòu)總價(jià)是由多種圖書實(shí)
4、際售價(jià)乘以訂購(gòu)數(shù)量,再進(jìn)行累計(jì)計(jì)算得出的。網(wǎng)上書店系統(tǒng)中的圖書銷售基本規(guī)定如下:每個(gè)會(huì)員可以通過訂購(gòu)圖書生成多個(gè)訂單,每個(gè)訂單僅屬于一個(gè)會(huì)員,每個(gè)訂單中可以包含多種圖書商品,每種圖書商品可以出現(xiàn)在多個(gè)訂單中;在訂單信息中,每種圖書都有對(duì)應(yīng)的訂購(gòu)數(shù)量。管理員在支付以后可以對(duì)其進(jìn)行發(fā)貨處理。網(wǎng)上書店系統(tǒng)流程圖3-14.數(shù)據(jù)字典用戶信息表4-1序號(hào)字段名類型長(zhǎng)度字段描述1會(huì)員帳號(hào)varchar50記錄用戶的唯一標(biāo)識(shí)2密碼varchar8記錄用戶的登錄密碼3姓名varchar50記錄用戶的真實(shí)名字4郵箱varchar50記錄用戶的電子郵箱5電話varchar20記錄用戶的電話號(hào)碼6聯(lián)系地址varcha
5、r50記錄用戶的聯(lián)系地址圖書信息表4-2序號(hào)字段名類型長(zhǎng)度字段描述1圖書編號(hào)int4定義商品的唯一ID號(hào)2書名varchar50記錄商品的名稱3圖書類別varchar50記錄商品的類別4出版社varchar50記錄商品的發(fā)行公司5作者varchar50記錄商品的作者姓名6圖書概況varchar50記錄商品大致信息7定價(jià)money8記錄商品的價(jià)格8折扣money8記錄商品當(dāng)前折扣9庫(kù)存數(shù)量int4記錄商品的數(shù)量訂單信息表4-3序號(hào)字段名稱類型長(zhǎng)度字段描述1訂單編號(hào)int4記錄訂購(gòu)單的唯一ID號(hào)2書本名稱varchar50記錄購(gòu)買書本的名稱3訂購(gòu)數(shù)量int4記錄購(gòu)買圖書的數(shù)量4訂購(gòu)總價(jià)money8
6、記錄購(gòu)買圖書的總價(jià)5訂購(gòu)日期Datetime8記錄購(gòu)買圖書的日期6發(fā)貨日期Datetime8記錄管理員發(fā)貨日期管理員信息表4-4序號(hào)字段名稱類型長(zhǎng)度字段描述1管理員帳號(hào)varchar50記錄管理員的唯一標(biāo)識(shí)2密碼varchar8記錄管理員登錄密碼3姓名varchar50記錄管理員的姓名4電話varchar20記錄管理員的電話5聯(lián)系地址varchar50記錄管理員的聯(lián)系地址二、數(shù)據(jù)庫(kù)設(shè)計(jì)2.1 數(shù)據(jù)庫(kù)概念設(shè)計(jì) 會(huì)員信息E-R圖 圖書信息E-R圖 管理員信息E-R圖姓名姓名電話密碼會(huì)員 管理管理員 n 1. n 1訂購(gòu)數(shù)量訂購(gòu)日期 購(gòu)買 管理發(fā)貨處理訂購(gòu)總價(jià) n 圖書 m更新圖書信息圖書編號(hào)書名
7、實(shí)體之間的關(guān)系E-R圖2.2數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)用戶信息表UserInfo字段名數(shù)據(jù)類型含義說明約束情況uaccountVarchar(50)會(huì)員帳號(hào)主關(guān)鍵字upasswordVarchar(8)會(huì)員密碼不為空unameVarchar(50)會(huì)員姓名不為空uemailVarchar(50)會(huì)員郵箱不為空UnumberVarchar(20)會(huì)員電話不為空uaddressVarchar(50)會(huì)員聯(lián)系地址不為空?qǐng)D書信息表BookInfo字段名數(shù)據(jù)類型含義說明約束情況bIDInt(4)圖書編號(hào)主鍵bnameVarchar(50)圖書名稱不為空btypeVarchar(50)圖書類別不為空bpressVa
8、rchar(50)圖書出版社不為空bwriterVarchar(50)圖書作者不為空bsummarizeVarchar(50)圖書概況不為空bpriceInt(4)圖書定價(jià)不為空bdiscountInt(4)圖書當(dāng)前折扣不為空bquantityInt(4)圖書庫(kù)存數(shù)量不為空管理員信息表ManagerInfo字段名數(shù)據(jù)類型含義說明約束情況maccountVarchar(50)管理員帳號(hào)主鍵mpasswordVarchar(8)管理員密碼不為空mnameVarchar(50)管理員姓名不為空mnumberVarchar(20)管理員電話不為空maddressVarchar(50)管理員聯(lián)系地址不為
9、空訂單信息表OrderInfo字段名數(shù)據(jù)類型含義說明約束情況oIDInt(4)訂單編號(hào)主鍵obooknameVarchar(50)書本名稱不為空onumberVarchar(50)訂購(gòu)數(shù)量不為空opriceVarchar(50)訂購(gòu)總價(jià)不為空oorderdateDatetime訂購(gòu)日期不為空odeliverydateDatetime發(fā)貨日期不為空三、系統(tǒng)實(shí)現(xiàn)3.1 數(shù)據(jù)庫(kù)訪問1) 數(shù)據(jù)訪問類及實(shí)現(xiàn)代碼package booksql;import java.sql.Connection;import java.sql.DriverManager;public class BOOKSQL /* *
10、 創(chuàng)建數(shù)據(jù)庫(kù)的連接 * return */ public static Connection getconn() Connection conn=null; try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String url="jdbc:microsoft:sqlserver:/localhost:1433;databasename=bookstore;user=sa;password=" conn=DriverManager.getConnection(url);
11、catch(Exception e) System.out.println(e.getMessage(); return conn; /* * 關(guān)閉數(shù)據(jù)庫(kù) * */ public static void CloseSQL(Connection conn) try if(conn!=null) if(conn.isClosed() conn.close(); catch(Exception e) System.out.println(e.getMessage(); 2) SQL語(yǔ)句 1.訪問圖書信息表package booksql;import java.sql.Connection;impor
12、t java.sql.PreparedStatement;import java.sql.ResultSet;import bean.Bookinfo;public class Bookbiz /* *數(shù)據(jù)庫(kù)的修改 * return */public Bookinfo SeachBookByID(int bID) Bookinfo bookInfo = new Bookinfo();Connection conn = BOOKSQL.getconn();try String sql = " select * from BookInfo"PreparedStatement p
13、stm = conn.prepareStatement(sql);pstm.setInt(1, bID);ResultSet rs = pstm.executeQuery();while (rs.next() bID = rs.getInt(1);String bname = rs.getString(2);String btype = rs.getString(3);String bpress = rs.getString(4);String bwriter = rs.getString(5);String bsummarize = rs.getString(6);int bprice =
14、rs.getInt(7);int bdiscount = rs.getInt(8);int bquantity= rs.getInt(9);bookInfo.setbID(bID);bookInfo.setBname(bname);bookInfo.setBtype(btype);bookInfo.setBpress(bpress);bookInfo.setBwriter(bwriter);bookInfo.setBsummarize(bsummarize);bookInfo.setBprice(bprice);bookInfo.setBdiscount(bdiscount);bookInfo
15、.setBquantity(bquantity); catch (Exception e) System.out.println("按書號(hào)查詢圖書時(shí)出現(xiàn)錯(cuò)誤" + e.getMessage(); finally BOOKSQL.CloseSQL(conn);return bookInfo;2.訪問用戶信息表package booksql;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import bean.Userinfo;import books
16、ql.BOOKSQL;public class UserBiz boolean flag=false;Connection conn=BOOKSQL.getconn();/* * 檢查用戶帳號(hào)是否可用 */public boolean checkuser(String account)tryString sql=" select * from UserInfo where uaccount=?"PreparedStatement pstm=conn.prepareStatement(sql);pstm.setString(1, account);int hang=pstm.
17、executeUpdate();System.out.println("操作返回的行數(shù)是"+hang);if(hang>0)flag=false;catch(Exception e)System.out.println("檢索用戶帳號(hào)時(shí)出錯(cuò)"+e.getMessage();return flag;/* * 用戶登陸時(shí)調(diào)用的方法 */public Userinfo CheckUserLogin(String uaccount,String upassword) Userinfo userInfo =new Userinfo(); try String
18、 sql="select * from userinfo where uaccount=? and upassword=?" PreparedStatement pstm=conn.prepareStatement(sql); pstm.setString(1, uaccount); pstm.setString(2, upassword); ResultSet rs=pstm.executeQuery(); if(rs.next() String uaccount=rs.getString(1); String upassword=rs.getString(2); Str
19、ing uname=rs.getString(3); String unumber=rs.getString(4); String uemail=rs.getString(5); String uaddress=rs.getString(6); userInfo.setUaccount(uaccount); userInfo.setUpassword(upassword); userInfo.setUname(uname); userInfo.setUnumber(unumber); userInfo.setUemail(uemail); userInfo.setUaddress(uaddre
20、ss); catch(Exception e) System.out.println("登陸時(shí)數(shù)據(jù)庫(kù)連接失敗,原因是"+e.getMessage(); finallyBOOKSQL.CloseSQL(conn); return userInfo;/* * 用戶注冊(cè)方法 * 返回用戶 * param user * return */public boolean RegUser(Userinfo user) try String sql="insert into UserInfo values (?,?,?,?,?,?)" PreparedStatement
21、 pstm=conn.prepareStatement(sql); pstm.setString(1, user.getUaccount(); pstm.setString(2, user.getUpassword(); pstm.setString(3, user.getUname(); pstm.setString(4, user.getUemail(); pstm.setString(5, user.getUnumber(); pstm.setString(6, user.getUaddress(); /判斷執(zhí)行結(jié)果 int hang=pstm.executeUpdate(); /判斷返
22、回結(jié)果 if(hang>0) flag=true; catch(Exception e) System.out.println("注冊(cè)失敗"+e.getMessage(); finally BOOKSQL.CloseSQL(conn); return flag; 3.訪問訂單信息表package booksql;import java.sql.Connection;import java.sql.PreparedStatement;import java.util.ArrayList;import bean.Orderinfo;public class OrderBi
23、z public boolean Orderinfo(Orderinfo orderinfo)boolean flag=false;Connection conn=BOOKSQL.getconn();tryString sql="insert into Orderinfo ( oID,obookname,onumber,oprice,oorderdate,odeliverydate) value(?,?,?,?,?,?)"PreparedStatement pstm = conn.prepareStatement(sql);pstm.setInt(1, orderinfo.
24、getoID();pstm.setString(2, orderinfo.getObookname();pstm.setString(3, orderinfo.getOnumber();pstm.setString(4, orderinfo.getOprice();pstm.setString(5, orderinfo.getOorderdate();pstm.setString(6, orderinfo.getOdeliverydate();int hang=pstm.executeUpdate();if(hang>0)flag=true;catch(Exception e)Syste
25、m.out.println("生成詳細(xì)定單信息時(shí)出錯(cuò),原因是:"+e.getMessage();finallyBOOKSQL.CloseSQL(conn);return flag;public boolean Jiesuan(String userAccount, String orderID,float orderAllTitle) / TODO Auto-generated method stubreturn false;public ArrayList SeachUserOrder(String userAccount) / TODO Auto-generated m
26、ethod stubreturn null;3.2 業(yè)務(wù)邏輯層類及代碼部分代碼創(chuàng)建網(wǎng)上書店系統(tǒng)數(shù)據(jù)庫(kù)bookstorecreate database bookstoreon primary(name='bookstore_data',filename='d:bookstore_data.mdf',size=10mb,maxsize=50mb,filegrowth=10%)log on(name='bookstore_log',filename='d:bookstore_log.ldf',size=2mb,maxsize=5mb,f
27、ilegrowth=1mb)創(chuàng)建用戶信息表UserInfouse bookstoregocreate table UserInfo(uaccount varchar(50) not null primary key,upassword varchar(8) not null,uname varchar(50) not null,uemail varchar(50) not null,unumber varchar(20) not null,uaddress varchar(40) not null)創(chuàng)建圖書信息表BookInfouse bookstoregocreate table BookI
28、nfo(bID int not null primary key,bname varchar(50) not null,btype varchar(50) not null,bpress varchar(50) not null,bwriter varchar(50) not null,bsummarize varchar(50) not null,bprice int not null,bdiscount int not null,bquantity int not null)創(chuàng)建管理員信息表ManagerInfouse bookstoregocreate table ManagerInfo
29、(maccount varchar(50) not null primary key,mpassword varchar(8) not null,mname varchar(50) not null,mnumber varchar(20) not null,maddress varchar(40) not null)創(chuàng)建訂單信息表OrderInfouse bookstoregocreate table OrderInfo(oID int not null primary key,obookname varchar(50) not null,onumber varchar(50) not nul
30、l,oprice varchar(50) not null,oorderdate datetime not null,odeliverydate datetime not null)新增圖書信息到圖書信息表use bookstorego insert into BookInfo values(1001,'藏地密碼','中國(guó)文學(xué)','人民文學(xué)出版社','何馬','了解神秘的西藏······',26,8,98)goinsert into BookInfo va
31、lues(2002,'飛鳥集','外國(guó)文學(xué)','外文出版社','泰戈?duì)?#39;,'最經(jīng)典的泰戈?duì)栐?shī)集······',32,8,75)goinsert into BookInfo values(1003,'中文版Photoshop CS6完全自學(xué)教程','計(jì)算機(jī)技術(shù)','清華大學(xué)出版社','李金明等','photoshop完全攻略·····
32、183;',54,7,47)goinsert into BookInfo values(4004,'平凡的世界','中國(guó)文學(xué)','生活·讀書·新知三聯(lián)書店','路遙','你必須讀過的一本書······',29,8,34)go新增管理員信息到管理員信息表use bookstoregoinsert into ManagerInfo values('m','','李紅','
33、9;,'大理學(xué)院')go完整性約束:create table UO(uaccount varchar(50) not null, oID int not null, grade smallint, primary key(uaccount,oID), foreign key (uaccount) references UserInfo(uaccount), foreign key (oID) references OrderInfo(oID);創(chuàng)建視圖create view BI2_view as select * from BookInfo3.3表示層 及其代碼部分程序代碼:
34、1.封裝圖書信息表屬性package bean;/* * author 506 * */public class Bookinfo private int bID; private String bname; private String btype; private String bpress; private String bwriter; private String bsummarize; private int bprice; private int bdiscount; private int bquantity; public int getbID() return bID;pu
35、blic void setbID(int bID) this.bID = bID;public String getBname() return bname;public void setBname(String bname) this.bname = bname;public String getBtype() return btype;public void setBtype(String btype) this.btype = btype;public String getBpress() return bpress;public void setBpress(String bpress
36、) this.bpress = bpress;public String getBwriter() return bwriter;public void setBwriter(String bwriter) this.bwriter = bwriter;public String getBsummarize() return bsummarize;public void setBsummarize(String bsummarize) this.bsummarize = bsummarize;public int getBprice() return bprice;public void se
37、tBprice(int bprice) this.bprice = bprice;public int getBdiscount() return bdiscount;public void setBdiscount(int bdiscount) this.bdiscount = bdiscount;public int getBquantity() return bquantity;public void setBquantity(int bquantity) this.bquantity = bquantity;public void setBookCcun(Integer valueOf
38、) / TODO Auto-generated method stub 2.封裝訂單信息表屬性package bean;public class Orderinfo private int oID;private String obookname;private String onumber;private String oprice;private String oorderdate;private String odeliverydate;public int getoID() return oID;public void setoID(int oID) this.oID = oID;pu
39、blic String getObookname() return obookname;public void setObookname(String obookname) this.obookname = obookname;public String getOnumber() return onumber;public void setOnumber(String onumber) this.onumber = onumber;public String getOprice() return oprice;public void setOprice(String oprice) this.
40、oprice = oprice;public String getOorderdate() return oorderdate;public void setOorderdate(String oorderdate) this.oorderdate = oorderdate;public String getOdeliverydate() return odeliverydate;public void setOdeliverydate(String odeliverydate) this.odeliverydate = odeliverydate;3.封裝用戶信息表屬性package bea
41、n;public class Userinfo private String uaccount; private String upassword; private String uname; private String uemail; private String unumber; private String uaddress;public String getUaccount() return uaccount;public void setUaccount(String uaccount) this.uaccount = uaccount;public String getUpass
42、word() return upassword;public void setUpassword(String upassword) this.upassword = upassword;public String getUname() return uname;public void setUname(String uname) this.uname = uname;public String getUemail() return uemail;public void setUemail(String uemail) this.uemail = uemail;public String getUnumber() return unumber;public void setUnumber(String unumber) this.unumber = unumber;public String getUaddress() return uaddress;public void setUaddress(String uaddress) this.uaddress = uaddress; 4.Sever
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 底板沖孔課程設(shè)計(jì)
- 2025版農(nóng)村客運(yùn)車輛承包合作協(xié)議3篇
- 聊天室課程設(shè)計(jì)
- 2025版石材工程變更合同2篇
- 二零二五年度個(gè)人商標(biāo)授權(quán)居間合同樣本3篇
- 早教社交能力課程設(shè)計(jì)
- 《Pt-Bi4Ti3O12-N-ACSs的制備及光催化還原CO2性能研究》
- 《煤系偏高嶺土及礦渣對(duì)氧化石墨烯水泥砂漿性能影響研究》
- 《交通銀行LN分行高端客戶服務(wù)策略研究》
- 《森林資源產(chǎn)權(quán)市場(chǎng)建設(shè)研究》
- 埃美柯閥門檢驗(yàn)報(bào)告匯總-391黃銅調(diào)節(jié)閥
- 景德鎮(zhèn)陶瓷大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 精裝修房分戶驗(yàn)收記錄表
- 五輸穴與臨床應(yīng)用課件
- 工程項(xiàng)目施工方案比選
- 盾構(gòu)始發(fā)施工技術(shù)要點(diǎn)PPT(44頁(yè))
- 甲烷(沼氣)的理化性質(zhì)及危險(xiǎn)特性表
- 某鋼鐵有限責(zé)任公司管理專案報(bào)告書---提升配電系統(tǒng)管理水平降低變配電裝置事故率
- 促銷費(fèi)用管理辦法15
- GB 13296-2013 鍋爐、熱交換器用不銹鋼無(wú)縫鋼管(高清版)
- 中醫(yī)院中藥的飲片處方用名與調(diào)劑給付規(guī)定
評(píng)論
0/150
提交評(píng)論