作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
基于SSM的大学生校园图书角管理系统
角色:管理员、用户
前台用户在系统首页可以查看首页,图书信息,公告信息,留言板,个人中心,后台管理,图书购买管理,图书借阅管理,图书续借管理,图书归还管理等功能。
管理员登录进入大学生校园图书角管理系统可以查看主页,个人中心,用户管理,图书信息管理,图书分类管理,图书购买管理,图书借阅管理,图书续借管理,图书归还管理,留言板管理,系统管理等功能
使用人群:
正在做毕设的学生,或者需要项目实战练习的Java学习者
环境需要
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项目:是;
技术栈
后端:SSM(Spring+SpringMVC+Mybatis)
前端:JSP+CSS+JS+JQUERY+Layui
使用说明
项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
运行截图
论文
前台界面
后管界面
相关代码
LoginController
package com.yx.controller;
import com.yx.codeutil.IVerifyCodeGen;
import com.yx.codeutil.SimpleCharVerifyCodeGenImpl;
import com.yx.codeutil.VerifyCode;
import com.yx.po.Admin;
import com.yx.po.ReaderInfo;
import com.yx.service.AdminService;
import com.yx.service.ReaderInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@Controller
public class LoginController {
@Autowired
private AdminService adminService;
@Autowired
private ReaderInfoService readerService;
/**
* 登录页面的转发
*/
@GetMapping("/login")
public String login(){
return "login";
}
/**
* 获取验证码方法
* @param request
* @param response
*/
@RequestMapping("/verifyCode")
public void verifyCode(HttpServletRequest request, HttpServletResponse response) {
IVerifyCodeGen iVerifyCodeGen = new SimpleCharVerifyCodeGenImpl();
try {
//设置长宽
VerifyCode verifyCode = iVerifyCodeGen.generate(80, 28);
String code = verifyCode.getCode();
//将VerifyCode绑定session
request.getSession().setAttribute("VerifyCode", code);
//设置响应头
response.setHeader("Pragma", "no-cache");
//设置响应头
response.setHeader("Cache-Control", "no-cache");
//在代理服务器端防止缓冲
response.setDateHeader("Expires", 0);
//设置响应内容类型
response.setContentType("image/jpeg");
response.getOutputStream().write(verifyCode.getImgBytes());
response.getOutputStream().flush();
} catch (IOException e) {
System.out.println("异常处理");
}
}
/**
* 登录验证
*/
@RequestMapping("/loginIn")
public String loginIn(HttpServletRequest request, Model model){
//获取用户名与密码
String username = request.getParameter("username");
String password = request.getParameter("password");
String code=request.getParameter("captcha");
String type=request.getParameter("type");
//判断验证码是否正确(验证码已经放入session)
HttpSession session = request.getSession();
String realCode = (String)session.getAttribute("VerifyCode");
if (!realCode.toLowerCase().equals(code.toLowerCase())){
model.addAttribute("msg","验证码不正确");
return "login";
}else{
//验证码正确则判断用户名和密码
if(type.equals("1")){//管理员信息
//用户名和密码是否正确
Admin admin=adminService.queryUserByNameAndPassword(username,password);
if(admin==null){//该用户不存在
model.addAttribute("msg","用户名或密码错误");
return "login";
}
session.setAttribute("user",admin);
session.setAttribute("type","admin");
}else{//来自读者信息表
ReaderInfo readerInfo=readerService.queryUserInfoByNameAndPassword(username,password);
if(readerInfo==null){
model.addAttribute("msg","用户名或密码错误");
return "login";
}
session.setAttribute("user",readerInfo);
session.setAttribute("type","reader");
}
return "index";
}
}
/**
* 退出功能
*/
@GetMapping("loginOut")
public String loginOut(HttpServletRequest request){
HttpSession session = request.getSession();
session.invalidate();//注销
return "/login";
}
}
BaseController
package com.yx.controller;
import com.github.pagehelper.PageInfo;
import com.yx.po.Admin;
import com.yx.po.Notice;
import com.yx.service.AdminService;
import com.yx.service.NoticeService;
import com.yx.service.ReaderInfoService;
import com.yx.utils.DataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class BaseController {
@Autowired
private NoticeService noticeService;
/**
* 首页
* @return
*/
@GetMapping("/index")
public String index(){
return "index";
}
/**
* 欢迎页面跳转
* @return
*/
@GetMapping("/welcome")
public String welcome(Model model){
//提供公告信息
PageInfo<Notice> pageInfo = noticeService.queryAllNotice(null,1,5);
if (pageInfo!=null){
List<Notice> noticeList = pageInfo.getList();
model.addAttribute("noticeList",noticeList);
}
return "welcome";
}
@GetMapping("/updatePassword")
public String updatePwd(){
return "pwdUpdate/updatePwd";
}
}
AdminController
package com.yx.controller;
import com.github.pagehelper.PageInfo;
import com.yx.po.Admin;
import com.yx.service.AdminService;
import com.yx.utils.DataInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Arrays;
import java.util.List;
@Controller
public class AdminController {
@Autowired
private AdminService adminService;
@GetMapping("/adminIndex")
public String adminIndex(){
return "admin/adminIndex";
}
@RequestMapping("/adminAll")
@ResponseBody
public DataInfo queryAdminAll(Admin admin, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "15") Integer limit){
PageInfo<Admin> pageInfo = adminService.queryAdminAll(admin,pageNum,limit);
return DataInfo.ok("成功",pageInfo.getTotal(),pageInfo.getList());
}
/**
* 添加页面的跳转
* @return
*/
@GetMapping("/adminAdd")
public String adminAdd(){
return "admin/adminAdd";
}
/**
* 添加提交
* @param admin
* @return
*/
@RequestMapping("/addAdminSubmit")
@ResponseBody
public DataInfo addBookSubmit(Admin admin){
adminService.addAdminSubmit(admin);
return DataInfo.ok();
}
/**
* 根据id查询
*/
@GetMapping("/queryAdminById")
public String queryAdminById(Integer id, Model model){
model.addAttribute("id",id);
return "admin/updateAdmin";
}
/**
* 修改提交
*/
@RequestMapping("/updatePwdSubmit")
@ResponseBody
public DataInfo updatePwdSubmit(Integer id,String oldPwd,String newPwd){
Admin admin = adminService.queryAdminById(id);//根据id查询对象
if (!oldPwd.equals(admin.getPassword())){
return DataInfo.fail("输入的旧密码错误");
}else{
admin.setPassword(newPwd);
adminService.updateAdminSubmit(admin);//数据库修改
return DataInfo.ok();
}
}
/**
* 删除
*/
@RequestMapping("/deleteAdminByIds")
@ResponseBody
public DataInfo deleteAdminByIds(String ids){
List<String> list = Arrays.asList(ids.split(","));
adminService.deleteAdminByIds(list);
return DataInfo.ok();
}
}
如果也想学习本系统,下面领取。关注并回复:322ssm