——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot阿博图书馆管理系统(java+springboot+mybaits+vue+elementui+mysql)
项目介绍
基于Springboot+vue阿博图书馆管理系统
环境需要
1.运行环境:最好是java jdk 1.8 其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue + elementui
使用说明
项目运行:
使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;
将项目中application.yml配置文件中的数据库配置改为自己的配置;
运行项目,在浏览器中输入地址:
前台地址:http://localhost:8080/springboot33dng/front/index.html
后台地址
http://localhost:8080/springboot33dng/admin/dist/index.html
管理员 abo 密码 abo
用户:用户1 密码: 123456
注意项目文件路径中不能含有中文、空格、特殊字符等,否则图片会上传不成功。
——————————CodeStart——————————
图书管理类控制层:
/**
- 图书管理类
*/
@Controller
@RequestMapping(“/web/books”)
public class BookController extends BaseController{
@Autowired
private IBookService bookService;
@Autowired
private IBorrowBookService borrowBookService;
/**
默认索引页
@parameter 参数及其意义
@return index页面
*/
@RequestMapping(“/index”)
public String index() {
return “/admin/books/index”;
/**
添加图书
@parameter
@return addform页面
*/
@RequestMapping(value = {“/addBook”}, method = RequestMethod.GET)
public String addBook() {
return “admin/books/addform”;
/**
删除图书
@parameter 图书id,数据集
@return JsonResult 是否成功
*/
@RequestMapping(value = “/delete/{id}”, method = RequestMethod.POST)
@ResponseBody
public JsonResult delete(@PathVariable String id,ModelMap map) {
try {
bookService.delete(id);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failure(e.getMessage());
return JsonResult.success();
/**
借书
@parameter Json类型的借书表,数据集
@return JsonResult
*/
@RequestMapping(value = { “/borrowlist/{borrowlist}” },method = RequestMethod.POST)
@ResponseBody
public JsonResult borrowList(@PathVariable String borrowlist,ModelMap map) {
if(!borrowlist.equals(“undefine”))
Gson gson=new Gson();
BorrowList mBorrowList=gson.fromJson(borrowlist,BorrowList.class);
BorrowBook[] borrowBook=new BorrowBook[mBorrowList.getBooklist().length];
Book[] book=new Book[mBorrowList.getBooklist().length];
int i=0;
while(i<mBorrowList.getBooklist().length)
borrowBook[i]=new BorrowBook();
book[i]=new Book();
borrowBook[i].setUserId(mBorrowList.getId());
borrowBook[i].setBookId(mBorrowList.getBooklist()[i]);
book[i]=bookService.findByBookId(mBorrowList.getBooklist()[i]);
//一本书只能借一次,因此需要判断一下该用户是否已经借过该书
BorrowBook isBorrowBook=borrowBookService.findByUserIdAndBookId(mBorrowList.getId(), mBorrowList.getBooklist()[i]);
if(book[i].getCurrentInventory()>0)
if(isBorrowBook==null)
book[i].setCurrentInventory(book[i].getCurrentInventory()-1);
bookService.saveOrUpdate(book[i]);
borrowBookService.save(borrowBook[i]);
}else
return JsonResult.failure(“您已经借阅该书!”);
}else
return JsonResult.failure(“库存不足请重新选择图书!”);
i++;
i=0;
return JsonResult.success();
}else
return JsonResult.failure(“未选择要借阅的书籍!”);
/**
还书表
@parameter 借书用户id
@return String 借书表信息和书籍信息
*/
@RequestMapping(value = { “/returnBookList/{id}” },method = RequestMethod.POST)
@ResponseBody
public String ReturnBookList(@PathVariable String id,ModelMap map) {
BorrowBook[] borrowBooks=borrowBookService.findByUserId(Integer.parseInt(id));
Book[] books=new Book[borrowBooks.length];
Date date=null;
for(int i=0;i<books.length;i++)
books[i]=bookService.findByBookId(borrowBooks[i].getBookId());
Map<String,Object> resultMap=new HashMap();
resultMap.put(“borrowBooks”, borrowBooks);
resultMap.put(“books”, books);
Gson gson=new Gson();
String jsonStr = gson.toJson(resultMap);
return jsonStr;
/**
归还图书
@parameter Json类型的借书表
@return JsonResult
*/
@RequestMapping(value = {“/returnBook/{borrowlist}”}, method = RequestMethod.POST)
@ResponseBody
public JsonResult returnBook(@PathVariable String borrowlist) {
Gson gson=new Gson();
BorrowList mBorrowList=gson.fromJson(borrowlist,BorrowList.class);
BorrowBook[] borrowBook=new BorrowBook[mBorrowList.getBooklist().length];
Book[] book=new Book[mBorrowList.getBooklist().length];
int i=0;
while(i<mBorrowList.getBooklist().length)
borrowBook[i]=new BorrowBook();
book[i]=new Book();
borrowBook[i].setUserId(mBorrowList.getId());
borrowBook[i].setBookId(mBorrowList.getBooklist()[i]);
book[i]=bookService.findByBookId(mBorrowList.getBooklist()[i]);
book[i].setCurrentInventory(book[i].getCurrentInventory()+1);
bookService.saveOrUpdate(book[i]);
borrowBookService.deletByUserIdAndBookId(borrowBook[i].getUserId(), borrowBook[i].getBookId());;
i++;
i=0;
return JsonResult.success();
/**
修改图书响应请求
@parameter 修改的图书id,数据集
@return String addform页面
*/
@RequestMapping(value = “/edit/{id}”, method = RequestMethod.GET)
public String edit(@PathVariable String id,ModelMap map) {
Book book = bookService.findByBookId(id);
map.put(“book”, book);
return “admin/books/addform”;
/**
修改图书
@parameter 图书实体,数据集
@return JsonResult 是否修改成功
*/
@RequestMapping(value= {“/edit”} ,method = RequestMethod.POST)
@ResponseBody
public JsonResult edit( Book book,ModelMap map){
try {
bookService.saveOrUpdate(book);
} catch (Exception e) {
return JsonResult.failure(e.getMessage());
return JsonResult.success();
/**
index页面中BootStrapTable请求列表响应
@parameter
@return Page
*/
@RequestMapping(value = { “/list” })
@ResponseBody
public Page
SimpleSpecificationBuilder
String searchText = request.getParameter(“searchText”);
if(StringUtils.isNotBlank(searchText)){
builder.add(“bookName”, Operator.likeAll.name(), searchText);
Page
return page;
/**
查询图书
@parameter
@return Page
*/
@RequestMapping(value = { “/findlist” })
@ResponseBody
public Page
SimpleSpecificationBuilder
String bookName = request.getParameter(“inputBookName”);
String bookAuthor = request.getParameter(“inputAuthor”);
String bookPress = request.getParameter(“inputPublication”);
if(StringUtils.isNotBlank(bookName)){
builder.add(“bookName”, Operator.likeAll.name(), bookName);
if(StringUtils.isNotBlank(bookAuthor)){
builder.add(“bookAuthor”, Operator.likeAll.name(), bookAuthor);
if(StringUtils.isNotBlank(bookPress)){
builder.add(“bookPress”, Operator.likeAll.name(), bookPress);
Page
return page;
用户管理控制层:
@Controller
@RequestMapping(“/admin/user”)
public class UserController extends BaseController {
@Autowired
private IUserService userService;
@Autowired
private IRoleService roleService;
@RequestMapping(value = { “/“, “/index” })
public String index() {
return “admin/user/index”;
@RequestMapping(value = { “/list” })
@ResponseBody
public Page
SimpleSpecificationBuilder
String searchText = request.getParameter(“searchText”);
if(StringUtils.isNotBlank(searchText)){
builder.add(“nickName”, Operator.likeAll.name(), searchText);
Page
return page;
@RequestMapping(value = “/add”, method = RequestMethod.GET)
public String add(ModelMap map) {
return “admin/user/form”;
@RequestMapping(value = “/edit/{id}”, method = RequestMethod.GET)
public String edit(@PathVariable Integer id,ModelMap map) {
User user = userService.find(id);
map.put(“user”, user);
return “admin/user/form”;
@RequestMapping(value= {“/edit”} ,method = RequestMethod.POST)
@ResponseBody
public JsonResult edit(User user,ModelMap map){
try {
System.out.println(“inputuser:”+user.toString());
userService.saveOrUpdate(user);
} catch (Exception e) {
return JsonResult.failure(e.getMessage());
return JsonResult.success();
@RequestMapping(value = “/delete/{id}”, method = RequestMethod.POST)
@ResponseBody
public JsonResult delete(@PathVariable Integer id,ModelMap map) {
try {
userService.delete(id);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failure(e.getMessage());
return JsonResult.success();
@RequestMapping(value = “/grant/{id}”, method = RequestMethod.GET)
public String grant(@PathVariable Integer id, ModelMap map) {
User user = userService.find(id);
map.put(“user”, user);
Set
List
for (Role role : set) {
roleIds.add(role.getId());
map.put(“roleIds”, roleIds);
List
map.put(“roles”, roles);
return “admin/user/grant”;
@ResponseBody
@RequestMapping(value = “/grant/{id}”, method = RequestMethod.POST)
public JsonResult grant(@PathVariable Integer id,String[] roleIds, ModelMap map) {
try {
userService.grant(id,roleIds);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failure(e.getMessage());
return JsonResult.success();
资源管理控制层:
@Controller
@RequestMapping(“/admin/resource”)
public class ResourceController extends BaseController {
@Autowired
private IResourceService resourceService;
@RequestMapping(“/tree/{resourceId}”)
@ResponseBody
public List
List
return list;
@RequestMapping(“/index”)
public String index() {
return “admin/resource/index”;
@RequestMapping(“/list”)
@ResponseBody
public Page
SimpleSpecificationBuilder
String searchText = request.getParameter(“searchText”);
if(StringUtils.isNotBlank(searchText)){
builder.add(“name”, Operator.likeAll.name(), searchText);
Page
return page;
@RequestMapping(value = “/add”, method = RequestMethod.GET)
public String add(ModelMap map) {
List
map.put(“list”, list);
return “admin/resource/form”;
@RequestMapping(value = “/edit/{id}”, method = RequestMethod.GET)
public String edit(@PathVariable Integer id,ModelMap map) {
Resource resource = resourceService.find(id);
map.put(“resource”, resource);
List
map.put(“list”, list);
return “admin/resource/form”;
@RequestMapping(value= {“/edit”}, method = RequestMethod.POST)
@ResponseBody
public JsonResult edit(Resource resource,ModelMap map){
try {
resourceService.saveOrUpdate(resource);
} catch (Exception e) {
return JsonResult.failure(e.getMessage());
return JsonResult.success();
@RequestMapping(value = “/delete/{id}”, method = RequestMethod.POST)
@ResponseBody
public JsonResult delete(@PathVariable Integer id,ModelMap map) {
try {
resourceService.delete(id);
} catch (Exception e) {
e.printStackTrace();
return JsonResult.failure(e.getMessage());
return JsonResult.success();
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=351125140706201sq
https://javayms.pages.dev?id=351125140706201sq