版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上大理学院数学与计算机学院数据库系统设计课程设计报告班级: 2011级计算机科学与技术2班 学号: 姓名: 董卜菡 系统名称: 网上书店系统 总分: 目录2一、需求分析1.背景简介在如今互联网快速发展的时代,网络以其快捷高速的方式改变着我们的生活方式,越来越多的人开始意识到Internet所蕴含的无限商机和经济价值,并积极投身于电子商务。而网上书店就是这商业行为电子化的最典型例子。网上书店具有很多新的特性,例如:其经营成本要比传统书店低得多、不需要支付昂贵的店铺租金和装修费用、不需要大量的资金用于库存管理、同时可以实现24小时营业,不需要营业员,可以依靠数据库更人性化的
2、提供服务。网上书店在价格、时效性、品种、查询方式等方面的优势使用户只要使用鼠标点击浏览、查询下订单,就能送货上门。综上所述,网上书店已经成为互联网时代购书者的最佳选择,必将获得巨大的成功。2.功能需求对于网上书店系统中普通用户、会员和管理员的具体功能描述如下:(1)普通用户1)浏览图书、按类别查询图书、查看图书详细信息。2)注册为会员。普通用户用例图2-1(2)会员1)浏览图书、按类别查询图书、查看图书详细信息。2)加入购物车、修改购物车、订购图书、生成订单、查看订单等。3)查看、修改个人信息(登录密码,常用发货地址,发票抬头管理等)会员用例图2-2(3)管理员1)浏览图书、按类别查询图书、查
3、看图书详细信息。2)查看订单、处理订单进行发货处理等。3)查看、修改个人信息。4)更新图书信息,如增加、删除图书、更新库存量、商品名称、增加图书的属性列等。管理员用例图2-33.系统功能图从上述的功能分析可以得出,网上书店系统中需要有会员、图书、订单等信息。对于会员,需要有会员的账号、密码、姓名、邮箱、电话、联系地址等属性;对于图书,需要有书名、图书类别、出版社、作者、图书概况、定价、折扣、库存数量等属性;其中图书可以有折扣(如8折、7.5折等),实际售价由定价乘以折扣,再除以10计算得出;对于一个订单,需记录会员的订购日期、管理员进行发货的发货日期、订购总价等属性,其中订购总价是由多种图书实
4、际售价乘以订购数量,再进行累计计算得出的。网上书店系统中的图书销售基本规定如下:每个会员可以通过订购图书生成多个订单,每个订单仅属于一个会员,每个订单中可以包含多种图书商品,每种图书商品可以出现在多个订单中;在订单信息中,每种图书都有对应的订购数量。管理员在支付以后可以对其进行发货处理。网上书店系统流程图3-14.数据字典用户信息表4-1序号字段名类型长度字段描述1会员帐号varchar50记录用户的唯一标识2密码varchar8记录用户的登录密码3姓名varchar50记录用户的真实名字4邮箱varchar50记录用户的电子邮箱5电话varchar20记录用户的电话号码6联系地址varcha
5、r50记录用户的联系地址图书信息表4-2序号字段名类型长度字段描述1图书编号int4定义商品的唯一ID号2书名varchar50记录商品的名称3图书类别varchar50记录商品的类别4出版社varchar50记录商品的发行公司5作者varchar50记录商品的作者姓名6图书概况varchar50记录商品大致信息7定价money8记录商品的价格8折扣money8记录商品当前折扣9库存数量int4记录商品的数量订单信息表4-3序号字段名称类型长度字段描述1订单编号int4记录订购单的唯一ID号2书本名称varchar50记录购买书本的名称3订购数量int4记录购买图书的数量4订购总价money8
6、记录购买图书的总价5订购日期Datetime8记录购买图书的日期6发货日期Datetime8记录管理员发货日期管理员信息表4-4序号字段名称类型长度字段描述1管理员帐号varchar50记录管理员的唯一标识2密码varchar8记录管理员登录密码3姓名varchar50记录管理员的姓名4电话varchar20记录管理员的电话5联系地址varchar50记录管理员的联系地址二、数据库设计2.1 数据库概念设计 会员信息E-R图 图书信息E-R图 管理员信息E-R图姓名姓名电话密码会员 管理管理员 n 1. n 1订购数量订购日期 购买 管理发货处理订购总价 n 图书 m更新图书信息图书编号书名
7、实体之间的关系E-R图2.2数据库的逻辑设计用户信息表UserInfo字段名数据类型含义说明约束情况uaccountVarchar(50)会员帐号主关键字upasswordVarchar(8)会员密码不为空unameVarchar(50)会员姓名不为空uemailVarchar(50)会员邮箱不为空UnumberVarchar(20)会员电话不为空uaddressVarchar(50)会员联系地址不为空图书信息表BookInfo字段名数据类型含义说明约束情况bIDInt(4)图书编号主键bnameVarchar(50)图书名称不为空btypeVarchar(50)图书类别不为空bpressVa
8、rchar(50)图书出版社不为空bwriterVarchar(50)图书作者不为空bsummarizeVarchar(50)图书概况不为空bpriceInt(4)图书定价不为空bdiscountInt(4)图书当前折扣不为空bquantityInt(4)图书库存数量不为空管理员信息表ManagerInfo字段名数据类型含义说明约束情况maccountVarchar(50)管理员帐号主键mpasswordVarchar(8)管理员密码不为空mnameVarchar(50)管理员姓名不为空mnumberVarchar(20)管理员电话不为空maddressVarchar(50)管理员联系地址不为
9、空订单信息表OrderInfo字段名数据类型含义说明约束情况oIDInt(4)订单编号主键obooknameVarchar(50)书本名称不为空onumberVarchar(50)订购数量不为空opriceVarchar(50)订购总价不为空oorderdateDatetime订购日期不为空odeliverydateDatetime发货日期不为空三、系统实现3.1 数据库访问1) 数据访问类及实现代码package booksql;import java.sql.Connection;import java.sql.DriverManager;public class BOOKSQL /* *
10、 创建数据库的连接 * 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; /* * 关闭数据库 * */ 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语句 1.访问图书信息表package booksql;import java.sql.Connection;impor
12、t java.sql.PreparedStatement;import java.sql.ResultSet;import bean.Bookinfo;public class Bookbiz /* *数据库的修改 * 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("按书号查询图书时出现错误" + 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();/* * 检查用户帐号是否可用 */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("操作返回的行数是"+hang);if(hang>0)flag=false;catch(Exception e)System.out.println("检索用户帐号时出错"+e.getMessage();return flag;/* * 用户登陆时调用的方法 */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("登陆时数据库连接失败,原因是"+e.getMessage(); finallyBOOKSQL.CloseSQL(conn); return userInfo;/* * 用户注册方法 * 返回用户 * 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(); /判断执行结果 int hang=pstm.executeUpdate(); /判断返
22、回结果 if(hang>0) flag=true; catch(Exception e) System.out.println("注册失败"+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("生成详细定单信息时出错,原因是:"+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 业务逻辑层类及代码部分代码创建网上书店系统数据库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)创建用户信息表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)创建图书信息表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)创建管理员信息表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)创建订单信息表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,'藏地密码','中国文学','人民文学出版社','何马','了解神秘的西藏······',26,8,98)goinsert into BookInfo va
31、lues(2002,'飞鸟集','外国文学','外文出版社','泰戈尔','最经典的泰戈尔诗集······',32,8,75)goinsert into BookInfo values(1003,'中文版Photoshop CS6完全自学教程','计算机技术','清华大学出版社','李金明等','photoshop完全攻略·····
32、183;',54,7,47)goinsert into BookInfo values(4004,'平凡的世界','中国文学','生活·读书·新知三联书店','路遥','你必须读过的一本书······',29,8,34)go新增管理员信息到管理员信息表use bookstoregoinsert into ManagerInfo values('m','','李红','
33、9;,'大理学院')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);创建视图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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论