基于javaweb的书籍管理系统(java+ssm+jsp+javascript+mysql)

基于javaweb的书籍管理系统(java+ssm+jsp+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

20220819204344

20220819204345

20220819204346

20220819204347

20220819204348

20220819204350

基于javaweb+mysql的书籍管理系统(java+SSM+JSP+JavaScript+mysql)

项目介绍

本项目包含管理员、用户两种角色;

管理员角色包含以下功能:

登录页面,管理员管理书籍,用户管理等功能。

用户角色包含以下功能:

首页,用户登录页面,电子书查看页面,下载电子书,查看分类,用户上传图书,查看个人中心,添加反馈,查看反馈等功能。

环境需要

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 5.7版本; 6.是否Maven项目:是;

技术栈

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

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中config.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/ssm_ebooknet 登录

图书管理控制层:

/**

  • @State 图书管理控制层

*/

@Controller

@RequestMapping(“/book”)

@SessionAttributes({“bookTypeList”})

public class BookController {

@Autowired

private IBookTypeService iBookTypeService;

@Autowired

private IBookService iBookService;

@Autowired

private ISupplierService iSupplierService;

/**

  • 图书列表

  • @param model

  • @return

*/

@GetMapping(“/home”)

public String toAdminHome(

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”)Integer size,

Model model

) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100 );

model.addAttribute(“bookTypeList”, bookTypeList);

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100);

model.addAttribute(“supplierList”, supplierList);

// 获取图书

List booksList = iBookService.findAllBook(num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute(“booksPageInfo”, booksPageInfo);

return “/backstage/home”;

/**

  • 图书列表

  • @param model

  • @return

*/

@GetMapping(“/home1”)

public @ResponseBody PageInfo toAdminHome1(

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”)Integer size,

Model model

) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100);

model.addAttribute(“bookTypeList”, bookTypeList);

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100 );

model.addAttribute(“supplierList”, supplierList);

// 获取图书

List booksList = iBookService.findAllBook(num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

return booksPageInfo;

/**

  • 上传图书图片

  • @param request

  • @param file

  • @return

*/

@PostMapping(“/uploadimg”)

public @ResponseBody int uploadimg(HttpServletRequest request, MultipartFile file) {

int i = iBookService.uploadImage(request,file);

return i;

/**

  • 上传详情图片

  • @param request

  • @param file

  • @return

*/

@PostMapping(“/uploaddetail”)

public @ResponseBody int uploaddetail(HttpServletRequest request, MultipartFile file) {

int i = iBookService.uploaddetail(request,file);

return i;

/**

*新增图书

  • @return

*/

@PostMapping(“/saveBook”)

public String saveBook(Books books) {

// System.out.println(“Books:=”+books);

iBookService.saveBook(books);

return “redirect:/book/home”;

/**

  • 前台首页

  • @return

*/

@GetMapping(“/qiantai”)

public String toHome(

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “10”)Integer size,

Model model) {

// 获取导航栏

List bookTypeList = iBookTypeService.findAllBookType(1,100);

model.addAttribute(“bookTypeList”, bookTypeList);

// 获取全部图书

List booksList = iBookService.findAllBook(num,size );

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute(“booksPageInfo”, booksPageInfo);

return “/frontdesk/home”;

/**

  • 通过Id查询图书详情

  • @param id

  • @param model

  • @return

*/

@GetMapping(“/findById/{id}”)

public String findById(@PathVariable Integer id,Model model) {

Books books = iBookService.findById(id);

model.addAttribute(“books”,books);

return “/frontdesk/book_detail”;

/**

  • 管理员通过Id查询图书详情

  • @param id

  • @param model

  • @return

*/

@GetMapping(“/adminfindById/{id}”)

public String adminfindById(@PathVariable Integer id,Model model) {

// 获取供应商

List supplierList = iSupplierService.findAllSupplier(1,100 );

model.addAttribute(“supplierList”, supplierList);

// 获取图书详情

Books books = iBookService.findById(id);

model.addAttribute(“books”,books);

return “/backstage/update_book”;

/**

  • 修改图书信息

  • @param books

  • @return

*/

@PostMapping(“/updateBook”)

public String updateBook(Books books) {

// System.out.println(“返回的图书:”+books);

iBookService.updateBook(books);

return “redirect:/book/home”;

/**

  • 通过图书类型Id查询图书

  • @param tid

  • @param model

  • @return

*/

@GetMapping(“/findByTid/{tid}”)

public String findByTid(@PathVariable Integer tid,@RequestParam(defaultValue = “1”) Integer num,@RequestParam(defaultValue = “10”)Integer size,Model model) {

List booksList = iBookService.findByTid(tid,num,size);

PageInfo booksPageInfo = new PageInfo<>(booksList);

model.addAttribute(“booksPageInfo”, booksPageInfo);

model.addAttribute(“tid”,tid);

return “/frontdesk/home”;

@PostMapping(“/deleteBook/{id}”)

public @ResponseBody int deleteBook(@PathVariable(“id”) Integer id) {

int i = iBookService.deleteBook(id);

return i;

用户管理控制层:

/**

  • State:用户控制层

*/

@Controller

@RequestMapping(“/users”)

@SessionAttributes({“userId”,“userName”,“password”,“adminId”,“adminName”,“adminpassword”})

public class UserController {

@Autowired

private IUserService iUserService;

/**

  • 跳转用户登录页面

  • @return

*/

@GetMapping(“/login”)

public String login() {

return “/frontdesk/login”;

/**

  • 用户登录

  • @return

  • @param u

*/

@PostMapping(“/toLogin”)

public String toLogin(User u,Model model) {

User user = iUserService.toLogin(u);

if (user == null) {

return “redirect:/users/register”;

model.addAttribute(“userId”,user.getId());

model.addAttribute(“userName”,user.getName());

model.addAttribute(“password”,user.getPassword());

return “redirect:/book/qiantai”;

/**

  • 跳转用户注册页面

  • @return

*/

@GetMapping(“/register”)

public String register() {

return “/frontdesk/register”;

/**

  • 用户注册

  • @return

*/

@PostMapping(“/toRegister”)

public String toRegister(User u) {

// System.out.println(“注册信息:”+u);

int i = iUserService.toRegister(u);

if (i != 1 ) {

return “redirect:/users/register”;

return “redirect:/users/login”;

/**

  • 跳转管理员登录页面

  • @return

*/

@GetMapping(“/adminLogin”)

public String adminLogin() {

return “/backstage/login”;

/**

  • 管理员登录

  • @return

*/

@PostMapping(“/toAdminLogin”)

public String toAdminLogin(User u,Model model) {

// System.out.println(“User==:”+u);

User user = iUserService.toLogin(u);

if (user == null) {

model.addAttribute(“message”,“邮箱或密码错误,请确认后重试!”);

return “/backstage/login”;

model.addAttribute(“adminId”,user.getId());

model.addAttribute(“adminName”,user.getName());

model.addAttribute(“adminpassword”,user.getPassword());

return “redirect:/book/home”;

/**

  • 根据tag查看全部用户或管理员

  • @param tag

  • @return

*/

@GetMapping(“/findByTag/{tag}”)

public String findByTag(

@PathVariable Integer tag,

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”) Integer size,

Model model) {

List userList = iUserService.findByTag(tag,num,size);

PageInfo userPageInfo = new PageInfo<>(userList);

model.addAttribute(“userPageInfo”,userPageInfo);

return “/backstage/user_control”;

/**

  • 返回JSON类型

  • 根据tag查看全部用户或管理员

  • @param tag

  • @return

*/

@GetMapping(“/findByTag1/{tag}”)

public @ResponseBody PageInfo findByTag1(

@PathVariable Integer tag,

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”) Integer size

) {

List userList = iUserService.findByTag(tag,num,size);

PageInfo userPageInfo = new PageInfo<>(userList);

return userPageInfo;

/**

  • 查看个人信息

  • @return

*/

@GetMapping(“/findById/{id}/{tag}”)

public String findById(@PathVariable int id,@PathVariable int tag,Model model) {

User user = iUserService.findById(id,tag);

model.addAttribute(“user”,user);

if (user.getTag() != 1) {

return “/frontdesk/person_detail”;

} else {

return “/backstage/person_detail”;

/**

  • 管理员查看他人信息

  • @return

*/

@GetMapping(“/adminFindById/{id}/{tag}”)

public @ResponseBody User adminFindById(@PathVariable int id,@PathVariable int tag,Model model) {

User user = iUserService.findById(id,tag);

return user;

/**

  • 新增用户

  • @param u

  • @return

*/

@PostMapping(“/saveUser”)

public String saveUser(User u) {

// System.out.println(“1User===”+u);

int i = iUserService.saveUser(u);

return “redirect:/users/findByTag/0”;

/**

  • 修改个人信息

  • @return

*/

@PostMapping(“/updateUser”)

public String updateUser(User u) {

// System.out.println(“User:”+u);

int i = iUserService.updateUser(u);

// System.out.println(“i==”+i);

if (i != 1) {

System.out.println(“个人信息修改失败”);

return “redirect:/users/findById/”+u.getId()+“/”+u.getTag();

if (u.getTag() != 1) {

return “redirect:/book/qiantai”;

return “redirect:/book/home”;

/**

  • 修改他人信息

  • @return

*/

@PostMapping(“/adminUpdateUser”)

public String adminUpdateUser(User u) {

// System.out.println(“User:”+u);

int i = iUserService.updateUser(u);

// System.out.println(“i==”+i);

if (i != 1) {

System.out.println(“个人信息修改失败”);

return “redirect:/users/findByTag/0”;

/**

  • 修改个人密码

  • @return

*/

@PostMapping(“/updatePwd”)

public String updatePwd(User u) {

// System.out.println(“User:”+u);

// 判断是否为管理员还是用户

if (u.getTag() != 1) {

int i = iUserService.updatePwd(u);

// System.out.println(“ipwd==”+i);

if (i != 1) {

System.out.println(“个人信息修改失败”);

return “/frontdesk/update_pwd”;

return “redirect:/users/toLoginOut”;

// System.out.println(“User:”+u);

int i = iUserService.updatePwd(u);

// System.out.println(“ipwd==”+i);

if (i != 1) {

System.out.println(“个人信息修改失败”);

return “/backstage/update_pwd”;

return “redirect:/users/toAdminLoginOut”;

/**

  • 退出登录

  • @return

*/

@GetMapping(“/toLoginOut”)

public String toLoginOut(SessionStatus status) {

status.setComplete();

boolean complete = status.isComplete();

if (complete) {

System.out.println(“退出成功”);

return “redirect:/book/qiantai”;

/**

  • 管理员退出登录

  • @return

*/

@GetMapping(“/toAdminLoginOut”)

public String toAdminLoginOut(SessionStatus status) {

status.setComplete();

boolean complete = status.isComplete();

if (complete) {

System.out.println(“退出成功”);

return “redirect:/users/adminLogin”;

/**

  • 根据主键Id删除某一用户

  • @return

*/

@PostMapping(“/deleteUser/{id}”)

public @ResponseBody int deleteUser(@PathVariable Integer id) {

int i = iUserService.deleteUser(id);

return i;

图书类型管理控制层:

/**

  • @State 图书类型(导航)

*/

@Controller

@RequestMapping(“/bookType”)

public class BookTypeController {

@Autowired

private IBookTypeService iBookTypeService;

/**

  • 查询所有图书类型

*/

@GetMapping(“/findAllBookType”)

public String findAllBookType(

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”)Integer size,

Model model

) {

List bookTypeList = iBookTypeService.findAllBookType(num,size);

PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);

model.addAttribute(“bookTypePageInfo”,bookTypePageInfo);

return “/backstage/book_type”;

/**

  • 返回JSON

  • 查询所有图书类型

*/

@GetMapping(“/findAllBookType1”)

public @ResponseBody PageInfo findAllBookType1(

@RequestParam(defaultValue = “1”) Integer num,

@RequestParam(defaultValue = “5”)Integer size

) {

List bookTypeList = iBookTypeService.findAllBookType(num,size);

PageInfo bookTypePageInfo = new PageInfo<>(bookTypeList);

return bookTypePageInfo;

/**

  • 新增图书类型

  • @param bookType

  • @return

*/

@PostMapping(“/saveBookType”)

public String saveBookType(BookType bookType) {

iBookTypeService.saveBookType(bookType);

return “redirect:/bookType/findAllBookType”;

/**

  • 查询单独图书类型

  • @param id

  • @return

*/

@PostMapping(“/findById/{id}”)

public @ResponseBody BookType findById(@PathVariable Integer id) {

BookType bookType = iBookTypeService.findById(id);

return bookType;

/**

  • 修改图书类型

  • @param bookType

  • @return

*/

@PostMapping(“/updateBookType”)

public @ResponseBody int updateBookType(BookType bookType) {

// System.out.println(“bookType:”+bookType);

int i = iBookTypeService.updateBookType(bookType);

return i;

/**

  • 根据Id删除

  • @param id

  • @return

*/

@PostMapping(“/deleteBookType/{id}”)

public int deleteBookType (@PathVariable Integer id) {

int i = iBookTypeService.deleteBookType(id);

return i;


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统介绍 图书管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等功能。项目实施后,能够提高图书馆的图书借阅、归还流程,提高工作效率。整个项目需要在两个月的时间内交付用户使用。 操作注意事项 (1)本系统的用户名为:tsoft,密码为:111 (2)读者类型不同,可借图书的本数也有所区别。 操作流程 (1)用户登录图书管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。 (2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。 (3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、查询及删除操作。 (4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。 (5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。 (6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。 (7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改及删除操作。 (8)单击“
网选课系统是一个非常实用的系统,可以方便学生进行选课操作,也可以方便教师进行课程管理。下面是一个基于JavaWeb的网上选课系统的设计思路: 1. 系统架构 该系统采用 B/S 架构,即浏览器/服务器架构。前端使用 HTML、CSS、JavaScript 和 JQuery,后端使用 Java+SSM 框架和 MySQL 数据库。 2. 系统功能 (1)学生模块:学生可以登录系统后进行选课操作,查看已选课程,并对已选课程进行退选操作。 (2)教师模块:教师可以登录系统后进行课程管理操作,包括添加课程、修改课程、删除课程等操作。 (3)管理员模块:管理员可以登录系统后对学生和教师进行管理,包括添加学生、添加教师、修改学生信息、修改教师信息等操作。 (4)公告管理:管理员可以发布公告,学生和教师可以浏览公告。 (5)选课规则管理:管理员可以设置选课规则,例如每个学生最多选择多少门课程,每门课程最多选多少人等。 3. 数据库设计 该系统需要设计以下数据库表: (1)学生表:包括学生编号、学生姓名、学生性别、学生年龄、所在班级等字段。 (2)教师表:包括教师编号、教师姓名、教师性别、所教课程、教龄等字段。 (3)课程表:包括课程编号、课程名称、授课教师、上课时间、选课人数等字段。 (4)选课记录表:包括学生编号、课程编号等字段。 (5)公告表:包括公告编号、公告内容、发布时间等字段。 4. 技术实现 该系统采用 Java+SSM 框架进行实现,其中: (1)后端技术:采用 SpringMVC 框架进行控制器的开发,采用 MyBatis 框架进行数据库操作。 (2)前端技术:采用 HTML、CSS、JavaScript 和 JQuery 进行页面布局和交互效果的实现。 (3)数据库技术:采用 MySQL 数据库进行数据存储和管理。 5. 总结 网上选课系统是一个非常实用的系统,它可以方便学生进行选课操作,也可以方便教师进行课程管理。该系统采用 B/S 架构,采用 Java+SSM 框架进行开发,实现了学生模块、教师模块、管理员模块、公告管理和选课规则管理等功能。在实现时需要注意数据库表的设计和技术实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值