JAVA课程设计网上图书订购系统Word文件下载.docx
《JAVA课程设计网上图书订购系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计网上图书订购系统Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
![JAVA课程设计网上图书订购系统Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/24/4ff01102-fe2d-4dc4-afd0-490fef1e74b0/4ff01102-fe2d-4dc4-afd0-490fef1e74b01.gif)
pricedecimal(8,2)notnull,#价格
authorvarchar(40)notnull,#作者
imagevarchar(255)notnull,#图片的位置和图片的名称
descriptionvarchar(255),#描述
category_idvarchar(40),#类别id
constraintcategory_id_FKforeignkey(category_id)referencescategory(id)
(3)创建用户表
CREATETABLEUSER
idVARCHAR(40)PRIMARYKEY,#用户编号
NAMEVARCHAR(40)NOTNULLUNIQUE,#姓名
PASSWORDVARCHAR(40)NOTNULL,#密码
phoneVARCHAR(40)NOTNULL,#电话
cellphoneVARCHAR(40)NOTNULL,#手机
addressVARCHAR(255)NOTNULL,#地址
emailVARCHAR(100)NOTNULL#email
(4)创建订单表
CREATETABLEorders
idVARCHAR(40)PRIMARYKEY,#订单编号
ordertimeDATETIMENOTNULL,#订单日期
stateBOOLEANNOTNULL,#发货和未发货0|1
priceDOUBLENOTNULL,#订单中所有商品的总价格
user_idVARCHAR(40),#用户id
CONSTRAINTuser_id_FKFOREIGNKEY(user_id)REFERENCESUSER(id)
(5)创建订单明细表
CREATETABLEorderitem
idVARCHAR(40)PRIMARYKEY,#订单条目编号
book_idVARCHAR(40),#图书id
quantityINTNOTNULL,#数量
priceDOUBLENOTNULL,#每种商品的总价格
order_idVARCHAR(40),#订单编号
CONSTRAINTbook_id_FKFOREIGNKEY(book_id)REFERENCESbook(id),
CONSTRAINTorder_id_FKFOREIGNKEY(order_id)REFERENCESorders(id)
2.3关于数据的处理
jap页面上的所有输入数据都会被提交到Servlet中,在Servlet中通过Servlet的内置对象request的getParameter方法获取,然后封装到JavaBean中,通过服务层对象调用服务层方法,将request对象和JavaBean封装的对象作为参数传递到服务层,在服务层在调用DAO层对象,并将数据库的链接connection和JavaBean封装的对象作为参数传递到DAO层,在DAO层调用QueryRunner对象的各种方法,将JavaBean封装的数据存放到数据库中,这就完成了数据的存储功能!
3.详细设计与实现
3.1系统包含的类及类之间的关系
本系统共包括10个主要的java源文件。
类关系如图3-1所示。
图3-1类之间的关系
3.2java源文件及其功能
1.User.java
封装用户信息的javaBean
2.Book.java
封装商品信息的javaBean
3.Order.java
封装订单信息的javaBean
4.BookCart.java
封装购物车的javaBean
5.Catrgory.java
封装商品种类的javaBean
6.OrderItem.java
7.AppUserServlet.java
该文件实现注册用户及用户登录
8.AppBookServlet.java
该文件实现分类显示商品及商品分页
9.AppBookCartServlet.java
该文件实现商品购买,查看购物车
10.AppOrderServlet.java
该文件实现保存订单,查看订单及查看订单明细
3.3类的功能设计
3.3.1主类用户类
(1)成员变量见表3-1
表3-1主要成员变量(属性)
成员变量描述
变量类型
名称
name
String
用户名
Password
密码
Phone
座机
cellphone
手机
Address
地址
email
E-mail
(2)方法见表3-2
表3-2主要方法
方法描述
功能
备注
Save
注册用户
实现用户注册功能
Login
用户登录
实现用户登录功能
(3)源代码见文件AppUserServlet.java
3.3.2商品显示及分页类
(1)成员变量见表3-3
表3-3主要成员变量
Path
跳转路径
CurPage
Integer
当前页
maxSize
页面商品显示数目
Category_id
商品类别
(2)方法见表3-4
表3-4主要方法
方法名
List
实现商品的显示及分页
-
3.3.3商品购买,查看购物车类
(1)成员变量见表3-5
表3-5主要成员变量
bookService
BookService
业务层对象
Book
图书对象
(2)方法见表3-6
表3-6主要方法
AddBook2Cart
添加图书到购物车
listBookCart
查询购物车上平
3.3.4保存订单,查看订单及查看订单明细类
(1)成员变量见表3-7
表3-7主要成员变量
path
跳转路经
session
HttpSession
Servlet通信对象
user
User
用户
orderService
OrderService
订单实现类对象
(2)方法见表3-8
表3-8主要方法
saveOrder
添加订单
listUserOrder
查询用户订单
4.测试
4.1系统主界面
系统主界面间图4-1
图4-1系统主界面
4.2用户注册页面
用户注册界面如图4-2
图4-2用户注册界面
4.3测试
(1)用户注册,如果用户不输入任何内容,则会提示错误信息不能为空。
如图4-3
图4-3用户注册测试界面
(2)用户注册,如果输入的内容不符合要求的时候,会提示相应的错误信息。
如下图4-4
图4-4用户注册测试界面
(3)用户注册,如果输入的内容全部符合系统要求的信息时,错误信息就会消失。
如图4-5
图4-5用户注册测试界面
(4)如果用户注册成功会就会提示注册成功,并且可以使用此用户名和账号登陆购物,如图4-6
图4-6用户注册测试界面
(5)如果登录系统的用户名和密码出现错误的话就会出现错误信息,如图4-7
图4-7用户登陆测试界面
(6)如果用户名密码输入正确后,就会显示当前用户名字,此时就可以通过购物,如图4-8
图4-8用户登陆测试界面
(7)当用户点击购买商品的时候,系统会提示购买的商品已经加入到购物车中,如图4-9
图4-9用户购物测试界面
(8)返回到主页面点击查看购物车,就可以看到购买的商品信息,如图4-10
图4-10用户购物测试界面
(9)如果用户确认购买的商品后统一购买商品,就可以点击生成订单提交购物信息,如图4-11
图4-11用户下订单测试界面
(10)返回主页面查看用户的订单,就可以查看到此用户的所有订单,如图4-12
图4-12用户查看订单测试界面
(11)在订单信息中点击查看明细,可以查询到此用户的这个订单的信息和此用户的信息,如图4-13
图4-13用户查看订单详情测试界面
(12)用户还可以通过点击主页面中的列表,查看对应系列的所有商品,还可以点击页面下方的首页,上一页,下一页,尾页查看商品,如图4-14
图4-14用户查看商品信息测试界面
参考文献
[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:
清华大学出版社,2006.8
[2]张孝祥.Java就业培训教程[M].北京:
清华大学出版社,2003
[3](美)MartyHall,LarryBrown.Servlet与JSP核心编程.第二版.赵学良译.北京:
清华大学出版社,2004.06
[4]程伟,汪孝宜.开发者突击:
JSP网络开发经典模块实现全集.北京:
电子工业出版社,2008
附录1软件源程序
注:
这里只是附录了四个主要类的Servlet代码,可执行的源代码在BookStore717工程里面,具体的代码部署及执行方式如下:
首先需要安装mysql数据库和myeclipse,安装完毕后,在mysql中新建一个bookstore数据库,再将到工程下找到此BookStore717\WebRoot\temp\201109231316765574341.sql文件,将此文件中的本程序需要的数据导入到mysql数据库中的bookstore数据库中,将BookStore717文件夹导入到myeclipse中,修改src目录下的c3p0数据库连接池配置文件c3p0-config.xml文件里面的数据库连接信息,部署后启动tomcat服务器,在网页中输入http:
//localhost:
8080/BookStore717/index.jsp即可看到主页面!
1).AppBookCartServlet.java实现代码
publicclassAppBookCartServletextendsBaseServlet{
/*
*增加图书到购物车
*/
publicvoidaddBook2Cart(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Stringpath="
/message.jsp"
;
try{
//获取图书id
Stringid=request.getParameter("
id"
//通过图书id查询图书信息
BookServicebookService=newBookService();
Bookbook=bookService.findBookById(id);
if(book!
=null){
//实例化BookItem对象
BookItembookItem=newBookItem();
//将图书添加到BookItem中
bookItem.setBook(book);
//获取购物车,并将bookItem加入购物车
BookCartbookCart=SessionUtils.getBookCartFromSession(request,true);
bookCart.addbookItem2BookCart(bookItem);
request.setAttribute("
message"
"
你购买的书籍["
+book.getName()+"
]已经加入到购物车中"
}
path="
}catch(Exceptione){
e.printStackTrace();
request.setAttribute("
e.getMessage());
}
request.getRequestDispatcher(path).forward(request,response);
}
*查看購物車
publicvoidlistBookCart(HttpServletRequestrequest,HttpServletResponseresponse)
/app/listcart.jsp"
//获取購物車
BookCartbookCart=SessionUtils.getBookCartFromSession(request,false);
if(bookCart==null){
path="
你要查询的购物车不存在或者你还没有购买商品"
request.getRequestDispatcher(path).forward(request,response);
return;
//查询购物车
bookCart"
bookCart);
}
2).AppBookServlet.java实现代码
publicclassAppBookServletextendsBaseServlet{
publicvoidlist(HttpServletRequestrequest,HttpServletResponseresponse)
/app/index.jsp"
IntegercurPage=1;
IntegermaxSize=2;
Stringcategory_id=request.getParameter("
category_id"
//将当前页放到request域中
request.setAttribute("
category_id);
StringscurPage=request.getParameter("
curPage"
if(StringUtils.isNotBlank(scurPage)){
curPage=Integer.parseInt(scurPage.trim());
try{
//获取所有图书类别信息
CategoryServicecategoryService=newCategoryService();
List<
Category>
categorys=categoryService.findAllCategory();
categorys"
categorys);
//计算开始位置的索引
IntegerbeginIndex=(curPage-1)*maxSize;
//获取所有图书信息
QueryResult<
Book>
qr=bookService.findPageBooksByCondition(beginIndex,maxSize,category_id);
if(qr!
books"
qr.getList());
//计算分页功能
PageBeanpageBean=newPageBean();
pageBean.init(curPage,maxSize,qr.getCount());
pageBean"
pageBean);
}catch(Exceptione){
3).AppOrderServlet.java实现代码
publicclassAppOrderServletextendsBaseServlet{
publicvoidsaveOrder(HttpServletRequestrequest,HttpServletResponseresponse)
HttpSessionsession=request.getSession();
Useruser=(User)session.getAttribute("
user"
if(user==null){
您还没有登录,不能生成订单"
request.getRequestDispatcher(path).forward(request,response);
return;
try{
//获取购物车
//调用购物车业务层方法,生成订单
OrderServiceorderService=newOrderService();
orderService.saveOrder(bookCart,user);
生成订单成功"
*查看自己的订单
publicvoidlistUserOrder(HttpServletRequestrequest,HttpServletResponseresponse)