>订单搜索7
B 2 架构分析与设计 B 2.1 逻辑架构
․ JSP + JavaBean + Database
․ JSP负责表现
․ JavaBean负责业务逻辑 ․ Database负责持久保持数据
B 2.2 物理架构
․ Web服务器一台
․ 配置
․Database服务器一台
․ 配置
B 2.3技术解决方案
WebServer – Tomcat6.0 Database - MySQL5.0
B 3业务逻辑分析
B 3.1 会员类 ․ 包装系统会员
․ 与订单类有一对多的关系 B 3.2 类别类 ․ 包装图书的类别 ․ 树状结构
․ 与图书类是一对多的关系 B 3.3 图书类 ․ 包装图书的信息
8
․ 与订单是多对多的关系 B 3.4 订单类 ․ 包装订单的信息 ․ 与图书类是多对多的关系 ․ 与会员是多对一的关系 B 3.5 购物类 ․ 包装购物车的信息 ․ 与图书类是多对多的关系
B 4业务逻辑设计
B 4.1 管理员:Administrator ․ 属性:
․ 用户名:username ․ 密码:password ․ 方法:
․ 登录:login( ) B 4.2会员类:User ․ 属性:
․ 用户ID:userid ․ 用户名:username ․ 密码:password ․ 联系电话:phone ․ 送货地址:addr ․ Email地址:email ․ 注册时间:rdate
9
․ 方法:
․ 保存会员信息到数据库:save() ․ 修改会员信息:change() ․ 删除会员信息:delete() ․ 回去订单:getOrders()
․ 搜索:search()
B 4.3类别类:Category ․ 属性:
․ 类别ID:categoryid ․ 类别名称:name ․ 类别描述:descr ․ 父ID:pid ․ 方法:
․ 保存类别到数据库中:save() ․ 修改类别:change() ․ 删除类别:delete() ․ 统计类别:getBookCount() B 4.4图书类:Books ․ 属性:
․ 图书编号:bookid
․ 图书所属列别ID:categoryid ․ 图书名称:bookname ․ 作者:author
10
․ 出版社:pbulisher ․ 市场价:normalprice ․ 会员价:memberprice ․ 图书描述:descr ․ 方法:
․ 保存图书信息到数据库中:save() ․ 修改图书信息:change() ․ 删除图书:delete()
․ 获取图书的类别:getCategory() ․ 获取图书销售总量:getSalesCount() B 4.5订单类:SalesOrder & SaleItem ․ 属性:
․ 订单ID:orderid ․ 用户ID:userid ․ 用户地址:addr ․ salesltem[] ․ 下订单时间:odate ․ 订单状态:statue ․ 方法:
․ 保存订单信息到数据库:save() ․ 修改订单状态:change() ․ 计算总金额:getTotalPrice() B 4.6 购物车类:ShoppingCar & Cartltem
11
․ 属性
․ 用户ID: userid ․ 购物车:cartitem[] ․方法:
․ 获取总金额:getTotalPrice() ․ 保存购物车:save() ․ 修改购物车:change() ․ 读取购物车:getCartItem() B 4.7 类图:
User------+++++useridusernamepasswordphoneaddremail: int: string: string: string: string: string: void: void: void: void: void0..10..*-----SalesOrderorderiduseridaddrodatestatue: int: int: string: java.util.Date: intsave ()change ()delete ()getOrders ()search ()+save (): void+change (): void+getTotalPrice (): void0..*0..*Bookscategory----++++categoryidnamedescrpid: int: string: string: int: void: void: void: void0..10..*save ()change ()delete ()getBookCount ()--------+++++bookidcategoryidbooknameauthorpublishernormalpricememberpricedescr: int: int: string: string: string: double: double: string: void: void: void: void: voidShoppingCar0..*0..*-userid: int-cartitem: int++++getTotalPrice ()save ()change ()getCartItem (): void: void: void: voidsave ()change ()delete ()getCategory ()getSalesCount ()
B 5 数据库设计 B 5.1 用户表:user 字段名 userid username password phone
字段类型 int Varchar(40) Varchar(20) Varchar(20) 说明 用户ID 用户名 密码 联系电话 12
addr email rdate B 5.2 类别表:category 字段名 categoryid name descr pid isleaf B 5.3 图书表:books 字段名 bookid bookname author publisher normalprice memberprice categoryid descr pdade B 5.4 订单类:salesorder 字段名 orderid userid addr odate statue B 5.5 saleitem 字段名 id bookid unitprice pcount orderid B 5.6 ER图: Varchar(255) Varchar(50) Datetime 字段类型 int Varchar(40) Varchar(255) int int 字段类型 int Varchar(40) Varchar(40) Varchar(255) double double int Varchar(255) datetime 字段类型 int int Varchar(255) datetime int 送货地址 Email地址 注册时间 说明 类别ID 类别名称 类别描述 父ID 0表示leaf/1表示非leaf 说明 图书ID 图书名称 作者 出版社 市场价 会员价 图书类别 图书描述 图书 说明 订单ID 用户ID 送货地址 下单时间 订单状态/0订单未处理、1处理订单成功、2废单 字段类型 int int double int int 说明 主键/自动递增 图书ID 单价 数量 订单id/引用salesorder的id 13
usersalesorderouseridIntegerousernameCharacters (40)Relationship_1oorderidIntegerouseridIntegeropasswordCharacters (20)oaddrCharacters (255)ophoneCharacters (20)oodateTimestampoaddrCharacters (255)ostatueIntegerordateTimestampRelationship_2booksobookidIntegerobooknameCharacters (40)saleitemoauthorCharacters (40)Relationship_3oidIntegeropublisherCharacters (255)obookidIntegeronormalpriceDecimalounitpriceDecimalomemberpriceDecimalopcountIntegerocategoryidIntegeroorderidIntegerodescrCharacters (255)Relationship_4categoryocategoryidIntegeronameCharacters (40)odescrCharacters (255)opidIntegeroisleafIntegerB 6界面设计
B 6.1 前台
B 6.1.1 首页:index.jsp
․ 显示图书 ․ 根据ID显示图片 ․ 搜索 ․ 免费注册 ․ 登录 ․ 自助服务
B 6.1.2 搜索界面:search.jsp
B 6.1.3 搜索结果界面:searchresult.jsp B 6.1.4 注册:
․ 注册界面:register.jsp B 6.1.5 登录:
․ 登录界面login.jsp
14
․ 登录成功longinok.jsp ․ 登录失败longinerr.jsp B 6.1.6 自助服务:selfservice.jsp
․ 修改密码changemima.jsp ․ 修改密码成功chenge.jsp
B 6.1.7结算
․ 结账fukuan.jsp
․ 用户使用书城账户直接完成付款 wancheng.jsp ․ 银行结帐页面 yinhang.jsp B 6.1.8账户充值
․ 用户账户充值chongzhi.jsp ․ 用户完成账户充值 czwancheng.jsp
B 7开发环境搭建 B 7.1 开软软件:
․ Myeclipse 6.6 B 7.2 数据库
․ Mysql B 7.3 Web Server
․ Tomcat
B 8 功能实现
B 8.1 功能一:用户注册
<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%> <%@ page import=\"com.kmust.bookshopping.action.*\"%> <%@ page import=\"com.kmust.bookshopping.*\" %> <%@ page import=\"java.sql.*\"%>
15
<%
request.setCharacterEncoding(\"UTF-8\"); response.setCharacterEncoding(\"UTF-8\");
String action = request.getParameter(\"action\");
if((action != null)&&(action.trim().equals(\"register\"))){ String username = request.getParameter(\"username\"); String password = request.getParameter(\"password\"); String phone = request.getParameter(\"phone\"); String addr = request.getParameter(\"addr\"); String email = request.getParameter(\"email\"); User u = new User();
u.setUsername(username); u.setPassword(password); u.setPhone(phone); u.setAddr(addr); u.setEmail(email);
u.setRdate(new Timestamp(System.currentTimeMillis())); UserAction.getInstance().save(u);
out.println(\"
注册成功!\"); return; } %>
用户注册 B 8.1.1 register.jsp
18
19
B 8.2 功能二:用户付款 B8.2.1fukuan.jsp
20
B 8.2.2 Vote.jsp
21
B 8.2.3 Wancheng.jsp
B 8.2.4 Yinhang.jsp
22
B 8.3 功能三:用户账户充值
B 8.3.1 Chongzhi.jsp
23
B 8.3.2 Czwancheng.jsp
总结
通过此次课程实践,进一步了解了java 和数据库应用并深入了解小型项目开发运行测试过程,过程中遇到了相当多的问题,但都通过询问同学老师解决了。课程设计过程中我清晰地感受到软件开发的能力必须要通过自己亲身的参与才能有所提高,过程中让我认识到自己知识的缺漏之处和处理问题经验的缺乏,通过此次课程设计既提高了我运用知识和处理问题的能力,也通过亲身的参与积累了一些软件开发的经验。
设 计 指 导 教 师 (签字):
教学基层组织负责人(签字):
年 月 日
24