基于javaweb的SSM+Maven图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

240023372402

250023372402

260023372402

270023372402

280023372402

290023372402

基于javaweb的SSM+Maven图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)

项目介绍

本系统是基于SSM和bootstrap进行开发的项目。主要也是为了完成学校的学习任务,整体可能没有那么完美,练练手倒还行。 该项目主要分为管理员与普通用户两种角色。 普通用户主要功能包括:图书查看、下订单、订单查看; 管理员主要功能包括:图书管理、订单管理、处理订单等;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 8.0版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;需要首先执行bookManager.sql,再执行insertBookData.sql; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中config.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/manager/index.jsp 登录 注:Tomcat中配置项目路径必须为manager 管理员:Chris 密码:123456 普通用户:chris 密码:123

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//这个对象是用来进行分页的
@Controller
public class BookController {
@Autowired
private BookService bookService;
@Autowired
private StorageService storageService;//增加库存
//对于图书的管理
@Autowired
private ChangeBookService changeBookService;
//通过查询获取部分的相应图书
@RequestMapping(value = "/BookQuery")
public String getSomeBooks(@RequestParam Map<String,Object> map, HttpSession httpSession){
//注意两个分页的必要参数,page和limit
List<Map<String,Object>> list = bookService.selectBookPageWhere(map);
PageInfo<Map<String ,Object>> pageInfo = new PageInfo<Map<String,Object>>();
map.put("list",list);
//聚合数目最大值
map.put("total",pageInfo.getTotal());
httpSession.setAttribute(SessionString.BOOK_LIST,list);
//通过Session进行判定,如果是user那就跳转到user的界面,反之就是manager的界面
Manager manager = (Manager) httpSession.getAttribute(SessionString.Manager_SESSION);
if(manager != null){
return "/managerJsp/manager";
}else{
return "/userJsp/user";
}
}
//通过查询获取全部图书
@RequestMapping(value = "/BookAll")
public String getAllBooks(@RequestParam Map<String,Object> map, HttpSession httpSession){
//注意两个分页的必要参数,page和limit
List<Map<String,Object>> list = bookService.selectAllBook(map);
PageInfo<Map<String ,Object>> pageInfo = new PageInfo<Map<String,Object>>();
map.put("list",list);
//设置page和limit
map.put("page",0);
map.put("limit",0);
//聚合数目最大值
map.put("total",pageInfo.getTotal());
httpSession.setAttribute(SessionString.BOOK_LIST,list);
//通过Session进行判定,如果是user那就跳转到user的界面,反之就是manager的界面
Manager manager = (Manager) httpSession.getAttribute(SessionString.Manager_SESSION);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
        HttpSession session = httpServletRequest.getSession();
User user = (User) session.getAttribute(SessionString.USER_SESSION);
Manager manager = (Manager) session.getAttribute(SessionString.Manager_SESSION);
//数据判断
if(user != null || manager != null){
return true;
}
//不符合那就进行提示
httpServletRequest.setAttribute("msg","您还未登录,请先登录");
httpServletRequest.getRequestDispatcher("index.jsp").forward(httpServletRequest,httpServletResponse);
return false;
}

@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

}

@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

}
}
package controller;



@Controller
public class ManagerController {
@Autowired
private ManagerService managerService;
@RequestMapping(value = "/loginManager.action",method = RequestMethod.POST)
public String login(String manager_name, String manager_password, HttpSession httpSession) {
Manager manager = managerService.findManagerByNameAndPassword(manager_name,manager_password);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37


@Controller
public class UserController {
@Autowired
private UserService userService;

//登录检测
@RequestMapping(value = "/userLogin.action",method = RequestMethod.POST)
public String login( String username, String password, Model model, HttpSession httpSession){
//model是用于数据传递
User user = userService.findUserByNameAndPassword(username,password);
if(user != null){
httpSession.setAttribute(SessionString.USER_SESSION,user);
return "forward:/BookAll";//返回到用户购书的界面
}else{
httpSession.setAttribute(SessionString.MSG,"账号或密码有误,请重新输入!");
return "userLogin";
}
}
//直接进行登录验证
@RequestMapping(value = "/userLogin.action",method = RequestMethod.GET)
public String toLogin(){
return "userLogin";
}
//用户注册
@RequestMapping(value = "/userRegister.action")
public String register(User user,HttpSession httpSession){
//添加好数据后,跳转到数据
int row = userService.addNewUser(user);
if(row > 0){
httpSession.setAttribute(SessionString.MSG,"你已经注册成功可以进行登录!");
return "userLogin";//返回登录的页面
}else{
return "ok";//返回注册错误的页面
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
        }else{
httpSession.setAttribute(SessionString.MSG,"账号或密码有误,请重新输入!");
return "userLogin";
}
}
//直接进行登录验证
@RequestMapping(value = "/userLogin.action",method = RequestMethod.GET)
public String toLogin(){
return "userLogin";
}
//用户注册
@RequestMapping(value = "/userRegister.action")
public String register(User user,HttpSession httpSession){
//添加好数据后,跳转到数据
int row = userService.addNewUser(user);
if(row > 0){
httpSession.setAttribute(SessionString.MSG,"你已经注册成功可以进行登录!");
return "userLogin";//返回登录的页面
}else{
return "ok";//返回注册错误的页面
}
}
//用户退出
@RequestMapping(value = "/logoutUser.action")
public String logout(HttpSession httpSession){
httpSession.invalidate();
return "userLogin";
}
}
package interceptor;



//拦截器,进行非登录用户的监控拦截
public class UserLoginInterceptor implements HandlerInterceptor {
//实现三个方法
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@RequestMapping(value = "/BookQuery")
public String getSomeBooks(@RequestParam Map<String,Object> map, HttpSession httpSession){
//注意两个分页的必要参数,page和limit
List<Map<String,Object>> list = bookService.selectBookPageWhere(map);
PageInfo<Map<String ,Object>> pageInfo = new PageInfo<Map<String,Object>>();
map.put("list",list);
//聚合数目最大值
map.put("total",pageInfo.getTotal());
httpSession.setAttribute(SessionString.BOOK_LIST,list);
//通过Session进行判定,如果是user那就跳转到user的界面,反之就是manager的界面
Manager manager = (Manager) httpSession.getAttribute(SessionString.Manager_SESSION);
if(manager != null){
return "/managerJsp/manager";
}else{
return "/userJsp/user";
}
}
//通过查询获取全部图书
@RequestMapping(value = "/BookAll")
public String getAllBooks(@RequestParam Map<String,Object> map, HttpSession httpSession){
//注意两个分页的必要参数,page和limit
List<Map<String,Object>> list = bookService.selectAllBook(map);
PageInfo<Map<String ,Object>> pageInfo = new PageInfo<Map<String,Object>>();
map.put("list",list);
//设置page和limit
map.put("page",0);
map.put("limit",0);
//聚合数目最大值
map.put("total",pageInfo.getTotal());
httpSession.setAttribute(SessionString.BOOK_LIST,list);
//通过Session进行判定,如果是user那就跳转到user的界面,反之就是manager的界面
Manager manager = (Manager) httpSession.getAttribute(SessionString.Manager_SESSION);
if(manager != null){
return "/managerJsp/manager";
}else{
return "/userJsp/user";
}
}

//通过id获取图书信息
@RequestMapping("/book/getBookById")
@ResponseBody
public Book getBookById(Integer id){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        Manager manager = (Manager) session.getAttribute(SessionString.Manager_SESSION);
ChangeBook changeBook = new ChangeBook();
changeBook.setBook_id(book.getId());
changeBook.setManager_id(manager.getId());
//时间
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
changeBook.setChange_time(timestamp);
//情况更改
changeBook.setSituation(new BookChangeStuation().toStuation(book,method));
int rows_change = changeBookService.insertChange(changeBook);
return rows_change > 0;
}
}
package controller;



@Controller
public class OrderController {
@Autowired
private OrderService orderService;//订单
@Autowired
private DeliveryService deliveryService;//出库
@Autowired
private StorageService storageService;//库存修改


项目链接:
https://javayms.github.io?id=221122522008200oi
https://javayms.pages.dev?id=221122522008200oi