# 网上书店系统
## 项目简述:
 在B站尚硅谷Javaweb视频中学习了网上书店系统,但是所给的项目并没有完全实现,自己实现了整个完整的项目,并且添加了不少的功能(项目语言为Java,框架为**MVC**,服务器Tomcat,数据库MySQL)。<br>
 快速搭建:clone之后,在IDEA中打开,配置Tomcat服务器(Tomcat7/8/9及最新的均可),找到sql文件夹并在MySQL(MySQL的版本最好是5.x避免出现问题)中导入文件bookstore.sql,此时会创建名为book的数据库数据,找到jdbc.properties文件,将其中的username和password更改为自己的数据库的用户名和密码。之后在MySQL数据库管理系统可以查看关于账户密码问题(管理员账号和密码均为admin,其它为普通用户),之后运行即可。
## 项目的设计报告如下(文件夹report中提供了word版的详细设计报告可以参考)
## 【详细设计】
### (一)开发平台及工具
**开发工具:**
后端java、使用IDEA编写
前端HTML、CSS、JavaScript、JSP
服务器:Tomcat
**DBMS**:MySQL(图形化界面MySQLworkbench/SQLyog/navicat)
**建模工具**:Sybase PowerDesigner
**注意Tomcat的配置**
![image](https://user-images.githubusercontent.com/60840921/153998463-e400b161-75a0-4b30-9abc-a496251b7144.png)
![SIUSS(SFDAF6$D(V N7ZY1S](https://user-images.githubusercontent.com/60840921/154036794-41637771-afc1-42fa-90d2-e4962123590d.png)
**特别注意Tomcat项目路径是/Book,所以项目首页默认打开是`http://localhost:8080/Book/`,如果发现购物车点击没有反应,一般都是因为在IDEA中Tomcat配置不是/Book,如上图**
---
### (二)用户界面设计
**1、首页**
![image](https://user-images.githubusercontent.com/60840921/154052790-c51f95ec-0629-4dea-ba42-1e4a147aa24d.png)
**2、登录页面**
![image](https://user-images.githubusercontent.com/60840921/154052849-c4205af2-436d-4f86-a242-b64acf3e5997.png)
**3、注册页面**
![image](https://user-images.githubusercontent.com/60840921/154052894-eb085e08-94a3-42b9-b707-8aa64c622ba7.png)
**4、用户购物车页面**
![image](https://user-images.githubusercontent.com/60840921/154052926-447254de-4a1d-4052-8ad4-cc35e2b59a8f.png)
**5、 我的订单页面**
![image](https://user-images.githubusercontent.com/60840921/154052947-eb82ca76-4fb0-4d26-97b8-fcf75b0d8a1e.png)
**6、图书管理页面**
![image](https://user-images.githubusercontent.com/60840921/154052991-29ceb319-1dd5-4f8d-ad53-dbc4c824449a.png)
**7、订单管理页面**
![image](https://user-images.githubusercontent.com/60840921/154053011-4a6d6e69-8a9a-4393-a837-6f07b5885e8c.png)
**8、榜单**
![image](https://user-images.githubusercontent.com/60840921/154053203-4912d0e0-3cb6-4547-8e34-5eaed27cd254.png)
**9、总账单页面**
![image](https://user-images.githubusercontent.com/60840921/154053247-e4ce4084-6cf6-4b2d-a589-15dd76e89eee.png)
**10、个人信息页面**
![image](https://user-images.githubusercontent.com/60840921/154053278-0406861d-c2de-4b6c-8fc9-283b74bdac0d.png)
---
### (三)数据库存储设计
根据前端页面以及之前大实验的分析,我们决定创建book数据库,建库语句如下:
![image](https://user-images.githubusercontent.com/60840921/154053614-e54b2fa4-ed49-4c22-9370-f55cfeb8ba42.png)
并决定创建4张表如下:
![image](https://user-images.githubusercontent.com/60840921/154053653-afb6e182-18a9-472a-8895-73a6a0477e73.png)
<center>图为navicat for mysql提供</center>
建表语句如下:
![image](https://user-images.githubusercontent.com/60840921/154053765-6a87677c-352f-46a0-b85b-c1c05a315c83.png)
![image](https://user-images.githubusercontent.com/60840921/154053780-b7368f19-db58-48ee-8dbc-b8f4ca42f51c.png)
![image](https://user-images.githubusercontent.com/60840921/154053802-f122893d-4e5b-4a22-981f-39e194769de9.png)
![image](https://user-images.githubusercontent.com/60840921/154053828-10a32479-8e30-4fb4-a93e-8d5c5e7eefd1.png)
说明:
 创建数据库表之后,插入部分图书的信息,然后开始java后端的设计。
---
### (四)java后端设计
 首先我们确定总的设计模式为MVC(没有选用当下流行的SSM或SpringBoot设计,选用java web设计中简单的MVC模式),选好总体设计模式之后,在IDEA项目中创建好java ee项目,将项目框架的文件夹创建好:web层、service层、dao层、javabean。
  java后端开发分为前台模块和后台模块两大部分,其中又可以分为用户模块、图书模块、购物车模块、订单模块和权限管理以及事务管理设计。这里我们就按照后者进行设计,在权限管理部分再将前后台设置清楚。
**用户模块:**
根据数据库表的设计创建我们的javaBean,创建User类,数据与数据库t_user表相对应。之后要设计我们的数据库层面的连接,这里导入数据库连接的jar包,已经测试包:
![image](https://user-images.githubusercontent.com/60840921/154053876-39812b46-ae35-472d-86d7-909ec0508d4e.png)
编写基本的数据库连接操作,这里使用JDBCUtils,创建基本的配置文件,在JDBCUtils中编写代码:
```java
static {
try {
Properties properties = new Properties();
//读取jdbc.properties属性配置文件
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties" );
//从流中加载数据
properties.load(inputStream);
//创建数据库连接池
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
```
 可以进行打印连接进行测试,看看是否连接到了数据库。之后我们编写baseDao类,在里面增加一些增删改查的方法,以便之后连接继承使用。
配置好环境之后,我们编写UserDao接口,在其中添加根据用户名查询用户、根据用户名和密码查询用户、保存用户等方法,然后在UserDaoImpl中实现这个接口。主要为编写sql语句并返回,部分语句如下:
```java
public class UserDaoImpl extends BaseDao implements UserDao {
@Override
public User querybyUsername(String username) {
String sql = "select `id`,`username`,`password`,`email` from t_user where username = ?";
return queryForOne(User.class,sql,username);
}
}
```
  编写完Dao层之后,我们观看前端关于用户页面的服务就有登录、注册等服务,所以我们编写service层,service层用来调用Dao,例如登录的时候调用UserDao中的根据用户名和密码查询用户的方法,通过得到的User类对象是否为空来判断用户登录是否成功,而相应我们前端请求的自然就是Web层的servlet代码。所以我们编写完service层之后要去web层编写相应的UserServlet,并记得在web.xml配置,以便在前端页面引用。这个时候我们可以将之前的前端HTML5页面全部替换为JSP动态页面,其实很简单,就是在前面加上
``<%@ page contentType="text/html;charset=UTF-8" language="java" %>``一行代码即可,方便后续我们进行动态引入从servlet来的数据,动态的显示。
 关于用户登录的模块也就是:
![image](https://user-images.githubusercontent.com/60840921/154053914-ca103a3e-dc6d-4fd0-a74d-4349b8688c4a.png)
其中在Dao层要进行一次test,在service层也要进行测试,如果出现错误,那么分层开发的优势就可以显示出来,我们可以很快的找出是哪一层出现了错误。在servlet层中我们用到了HTTP的相关知识,使用了doPost或者doGet方法,因此我们将servlet层中复用的代码放到baseServlet中,并利用反射技术去调用我们响应的方法(即通过类找到方法)。
 那么用户注册的模块也和登录一
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
毕设&课设&项目&实训-Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat)所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 基于STM32、ESP8266、PHP、QT、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#、单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备、LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等、数据集、大数据分析、人工智能、机器学习等各种项目 项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课设&项目&实训-Java网上书店管理系统.zip (252个子文件)
code.bmp 9KB
code.bmp 9KB
BookDaoImpl.class 5KB
BookDaoImpl.class 5KB
UserServlet.class 5KB
UserServlet.class 5KB
PaymentUtil.class 4KB
PaymentUtil.class 4KB
OrderServiceImpl.class 4KB
OrderServiceImpl.class 4KB
BookServiceImpl.class 4KB
BookServiceImpl.class 4KB
ManagerOrderServlet.class 4KB
ManagerOrderServlet.class 4KB
CartServlet.class 4KB
CartServlet.class 4KB
BookServlet.class 4KB
BookServlet.class 4KB
ManagerUserServlet.class 4KB
ManagerUserServlet.class 4KB
ClientOrderServlet.class 4KB
ClientOrderServlet.class 4KB
ClientBookServlet.class 3KB
ClientBookServlet.class 3KB
Cart.class 3KB
Cart.class 3KB
UserDaoImpl.class 3KB
UserDaoImpl.class 3KB
Book.class 3KB
Book.class 3KB
UserServiceImpl.class 3KB
UserServiceImpl.class 3KB
UserDaoTest.class 3KB
UserDaoTest.class 3KB
JDBCUtils.class 3KB
JDBCUtils.class 3KB
Page.class 3KB
Page.class 3KB
BaseDao.class 3KB
BaseDao.class 3KB
BookDaoTest.class 2KB
BookDaoTest.class 2KB
OrderItem.class 2KB
OrderItem.class 2KB
PayServlet.class 2KB
PayServlet.class 2KB
Order.class 2KB
Order.class 2KB
OrderDaoImpl.class 2KB
OrderDaoImpl.class 2KB
BookServiceTest.class 2KB
BookServiceTest.class 2KB
CartItem.class 2KB
CartItem.class 2KB
User.class 2KB
User.class 2KB
ManagerFilter.class 2KB
ManagerFilter.class 2KB
CartTest.class 2KB
CartTest.class 2KB
JDBCUtilsTest.class 2KB
JDBCUtilsTest.class 2KB
BaseServlet.class 2KB
BaseServlet.class 2KB
OrderServiceTest.class 2KB
OrderServiceTest.class 2KB
UserServiceImplTest.class 1KB
UserServiceImplTest.class 1KB
OrderItemDaoImpl.class 1KB
OrderItemDaoImpl.class 1KB
TransactionFilter.class 1KB
TransactionFilter.class 1KB
OrderItemDaoTest.class 1KB
OrderItemDaoTest.class 1KB
UserServiceTest.class 1KB
UserServiceTest.class 1KB
OrderDaoTest.class 1KB
OrderDaoTest.class 1KB
BookDao.class 1KB
BookDao.class 1KB
WebUtils.class 1KB
WebUtils.class 1KB
BookService.class 937B
BookService.class 937B
UserDao.class 711B
UserDao.class 711B
OrderService.class 646B
OrderService.class 646B
UserService.class 602B
UserService.class 602B
OrderDao.class 411B
OrderDao.class 411B
OrderItemDao.class 316B
OrderItemDao.class 316B
style.css 3KB
style.css 3KB
BookStore.docx 1.12MB
.gitignore 176B
BookStore.iml 1KB
druid-1.1.9.jar 2.59MB
共 252 条
- 1
- 2
- 3
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功