基于javaweb和mysql的ssm+maven图书馆图书管理系统(java+ssm+jsp+js+mysql)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb的SSM+Maven图书馆图书管理系统(java+ssm+jsp+js+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版本;

技术栈

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

使用说明

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

@Controller
public class commonController {

    @Autowired
    private ReaderService readerService;
    @Autowired
    private AdminService adminService;
    @Autowired
    private LendInfoSerivce lendInfoSerivce;

    //跳转登录界面
    @RequestMapping("/toLogin")
    public String login(){
        return "login";
    }

    //跳转注册界面
    @RequestMapping("/toRegister")
    public String toRegister(){
        return "register";
    }

    //注册是查询是否存在该读者
    @RequestMapping("/checkReader")
    @ResponseBody
    public AjaxResult checkreader(Integer reader_id) {
        AjaxResult ajaxResult = new AjaxResult();
        int count=readerService.checkReader(reader_id);
        if(count==0){
            ajaxResult.setSuccess(true);
        }else{
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("当前学号已被注册!");
        }
        return ajaxResult;
    }

    //添加读者
    @RequestMapping("/submitAddReader")
    @ResponseBody
    public AjaxResult submitAddreader(Reader reader) {
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

}

@Controller
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;

    //跳转到图书分类界面
    @RequestMapping("/bookType")
    public String bookType() {
        return "/book/bookType";
    }

    //图书分类异步请求
    @RequestMapping("/bookTypeList")
    @ResponseBody
    public String listCategory() {
        ArrayList<Category> categorylist= typeService.listCategory();
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",categorylist.size());
        obj.put("data", categorylist);
        return obj.toString();

@Controller
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;

    //跳转到图书分类界面
    @RequestMapping("/bookType")
    public String bookType() {
        return "/book/bookType";
    }

    //图书分类异步请求
    @RequestMapping("/bookTypeList")
    @ResponseBody
    public String listCategory() {
        ArrayList<Category> categorylist= typeService.listCategory();
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",categorylist.size());
        obj.put("data", categorylist);
        return obj.toString();
    }

    //修改图书类别
    @RequestMapping("/editBookType")
    @ResponseBody
    public AjaxResult editBookType(Category category) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            typeService.updateBookType(category);
                if(admin != null){
                    session.setAttribute(Const.ADMIN,admin);
                    ajaxResult.setStatus("0");
                }else{
                    ajaxResult.setStatus("2");
                    ajaxResult.setMessage("用户名或密码错误");
                }
            }else{
                //读者
                Reader rd = new Reader();
                rd.setReader_id(name);
                rd.setPassword(password);
                Reader reader = readerService.select(rd);
                if(reader != null){
                    session.setAttribute(Const.READER,reader);
                    ajaxResult.setStatus("1");
                }else{
                    ajaxResult.setStatus("2");
                    ajaxResult.setMessage("用户名或密码错误");
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setStatus("3");
            ajaxResult.setMessage("服务器异常,请改天登录");
        }

        return ajaxResult;
    }

    //推出
    @RequestMapping("/loginout")
    public String loginout(HttpSession session){
        session.invalidate();
        return "login";
    }

    //跳转借阅管理页面
    @RequestMapping("/listDisBackAdmin")
    public  String listDisBackAdmin() {
        return "listDisBackAdmin";
    }

    //跳转读者借阅记录页面
    @RequestMapping("/listDisBack")
    public  String listDisBack() {
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
            Admin admin = (Admin)session.getAttribute(Const.ADMIN);
            if(admin.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }else{
            Reader reader = (Reader)session.getAttribute(Const.READER);
            if(reader.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }

        return ajaxResult;
    }

    //修改密码
    @RequestMapping("/alterpwd")
    @ResponseBody
    public AjaxResult alterpwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();

        try{
            if(state.equals("0")){
                Admin admin = (Admin)session.getAttribute(Const.ADMIN);
                admin.setPassword(password);
                adminService.alterpwd(admin);
            }else{
                Reader reader = (Reader)session.getAttribute(Const.READER);
                reader.setPassword(password);
                readerService.alterpwd(reader);
            }
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("更改密码成功");
        }catch(Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("更改密码失败");

        }
        return ajaxResult;
    }

}

        }
        return ajaxResult;
    }

    //添加读者
    @RequestMapping("/submitAddReader")
    @ResponseBody
    public AjaxResult submitAddreader(Reader reader) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.addReader(reader);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("注册成功");
        }catch(Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("注册失败");
        }
        return ajaxResult;
    }

    //登录
    @RequestMapping("/doLogin")
    @ResponseBody
    public AjaxResult list(String name, String password, String access, HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();
        try{
            if(access.equals("0")){
                //管理员
                Admin ad = new Admin();
                ad.setName(name);
                ad.setPassword(password);
                Admin admin = adminService.select(ad);
                if(admin != null){
                    session.setAttribute(Const.ADMIN,admin);
                    ajaxResult.setStatus("0");
                }else{
                    ajaxResult.setStatus("2");
                    ajaxResult.setMessage("用户名或密码错误");
                }
            }else{
                //读者
                Reader rd = new Reader();
                rd.setReader_id(name);
                rd.setPassword(password);
                Reader reader = readerService.select(rd);
                if(reader != null){
    public AjaxResult checkPwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();
        if (state.equals("0")){
            Admin admin = (Admin)session.getAttribute(Const.ADMIN);
            if(admin.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }else{
            Reader reader = (Reader)session.getAttribute(Const.READER);
            if(reader.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }

        return ajaxResult;
    }

    //修改密码
    @RequestMapping("/alterpwd")
    @ResponseBody
    public AjaxResult alterpwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();

        try{
            if(state.equals("0")){
                Admin admin = (Admin)session.getAttribute(Const.ADMIN);
                admin.setPassword(password);
                adminService.alterpwd(admin);
            }else{
                Reader reader = (Reader)session.getAttribute(Const.READER);
                reader.setPassword(password);
                readerService.alterpwd(reader);
            }
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("更改密码成功");
        }catch(Exception e){
    private BookService bookService;
    @Autowired
    private LendInfoSerivce lendInfoSerivce;

    @RequestMapping("/index")
    public String index(HttpSession session){
        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);
        return "index";
    }

    //显示全部图书
    @RequestMapping(value = "/listBook")
    @ResponseBody
    public String listBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                           @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                           String bname,String author,String cid,HttpSession session
                           ) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        //判断是否为空
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(author))  paramMap.put("author",author);
        if(StringUtil.isNotEmpty(cid))  paramMap.put("cid",Integer.parseInt(cid));
        PageBean<Book> pageBean = bookService.queryBookPage(paramMap);

        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);

        // 转化为json
        //List<Book> list = bookService.listAllBook(pageBean);
        //PageBean pb=bookService.getPb();
        // 讲json发送给浏览器
        // list转成json
        JSONObject obj = new JSONObject();
                                         @RequestParam(value = "book_id" , defaultValue = "1") Integer book_id) {

        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("reader_id",reader_id);
        ret.put("book_id",book_id);
        try{
            lendInfoSerivce.backBook(ret);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("已归还");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("归还失败");
        }
        return ajaxResult;
    }

    //跳转到修改密码界面
    @RequestMapping("/toAlterpwdPage")
    public String toAlterpwdPage(String state, Model model) {
        model.addAttribute("state",state);
        return "alterPwd";
    }

    //确认密码
    @RequestMapping("/checkPwd")
    @ResponseBody
    public AjaxResult checkPwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();
        if (state.equals("0")){
            Admin admin = (Admin)session.getAttribute(Const.ADMIN);
            if(admin.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }else{
            Reader reader = (Reader)session.getAttribute(Const.READER);
            if(reader.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }

        return ajaxResult;
    }

    //跳转借阅管理页面
    @RequestMapping("/listDisBackAdmin")
    public  String listDisBackAdmin() {
        return "listDisBackAdmin";
    }

    //跳转读者借阅记录页面
    @RequestMapping("/listDisBack")
    public  String listDisBack() {
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(rname))  paramMap.put("rname",rname);
        if(StringUtil.isNotEmpty(state))  paramMap.put("state",state);
        //为0说明是读者,1说明是管理员点击未还图书
        if (power.equals(0)){
            //读者号
            //pageBean.setAdminId(admin.getAdminId());
            //读者姓名
            //pageBean.setRname(admin.getName());
        }
        PageBean<LendInfo> pageBean = lendInfoSerivce.queryLeadInfoPage(paramMap);
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //管理员归还图书
    @RequestMapping(value = "/backBook")
    @ResponseBody
    public AjaxResult backBook(@RequestParam(value = "reader_id" , defaultValue = "1") Integer reader_id,
        model.addAttribute("reader",reader);
        model.addAttribute("code",1);
        return "/reader/addReader";
    }

    //修改读者信息
    @RequestMapping("/updateReader")
    @ResponseBody
    public AjaxResult updateReader(Reader reader) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.updateReader(reader);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

    //显示读者信息
    @RequestMapping("/findReader")
    public String findReader(Integer id,Model model) {
        Reader reader = readerService.selectById(id);
        model.addAttribute("reader",reader);
        return "/reader/addReader";
    }

    //删除读者
    @RequestMapping("/delReader")
    @ResponseBody
    public AjaxResult delReader(Integer id) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.delReader(id);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        Book book = bookService.selectById(book_id);
        if (book.getStock()==0){
            ajaxResult.setStatus("2");
            return ajaxResult;
        }

        //判断该读者是否已经借过该图书
        LendInfo lendInfo = new LendInfo();
        lendInfo.setBook_id(book_id);
        lendInfo.setReader_id(reader.getReader_id());
        if (lendInfoSerivce.isLended(lendInfo)){
            ajaxResult.setStatus("0");
            return ajaxResult;
        }
        //判断是否达到借书上限
        Integer cardState = lendInfoSerivce.cardState(reader.getReader_id());
        if (cardState.equals(reader.getCard_state())){
            ajaxResult.setStatus("3");
            return ajaxResult;

        }
        lendInfoSerivce.lendBook(lendInfo);
        ajaxResult.setStatus("1");
        return ajaxResult;
    }

}

@Controller
@RequestMapping("/reader")
public class ReaderController {

        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);

        // 转化为json
        //List<Book> list = bookService.listAllBook(pageBean);
        //PageBean pb=bookService.getPb();
        // 讲json发送给浏览器
        // list转成json
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());

        return obj.toString();

    }

    //添加图书页面
    @RequestMapping("/addBook")
    public String addbook() {
        return "book/addBook";
    }

    //添加图书
    @RequestMapping("/submitAddBook")
    @ResponseBody
    public AjaxResult submitAddBook(Book book) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            bookService.addBook(book);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

        return obj.toString();
    }

    //添加页面跳转
    @RequestMapping("/addReader")
    public String addreader() {
        return "/reader/addReader";
    }

    @RequestMapping("/editReader")
    public String editReader(Integer id,Model model) {
        Reader reader = readerService.selectById(id);
        model.addAttribute("reader",reader);
        model.addAttribute("code",1);
        return "/reader/addReader";
    }

    //修改读者信息
    @RequestMapping("/updateReader")
    @ResponseBody
    public AjaxResult updateReader(Reader reader) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.updateReader(reader);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

    //显示读者信息
    @RequestMapping("/findReader")
    public String findReader(Integer id,Model model) {
        Reader reader = readerService.selectById(id);
        model.addAttribute("reader",reader);
        return "/reader/addReader";
    }

    //删除读者
    @RequestMapping("/delReader")
    @ResponseBody
    public AjaxResult delReader(Integer id) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
    @ResponseBody
    public String listBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                           @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                           String bname,String author,String cid,HttpSession session
                           ) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        //判断是否为空
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(author))  paramMap.put("author",author);
        if(StringUtil.isNotEmpty(cid))  paramMap.put("cid",Integer.parseInt(cid));
        PageBean<Book> pageBean = bookService.queryBookPage(paramMap);

        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);

        // 转化为json
        //List<Book> list = bookService.listAllBook(pageBean);
        //PageBean pb=bookService.getPb();
        // 讲json发送给浏览器
        // list转成json
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());

        return obj.toString();

    }

    //添加图书页面
    @RequestMapping("/addBook")
    public String addbook() {
        return "book/addBook";
    }

    //添加图书
    @RequestMapping("/submitAddBook")
    @ResponseBody
    public AjaxResult submitAddBook(Book book) {
        AjaxResult ajaxResult = new AjaxResult();

@Controller
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;

    //跳转到图书分类界面
    @RequestMapping("/bookType")
    public String bookType() {
        return "/book/bookType";
    }

    //图书分类异步请求
    @RequestMapping("/bookTypeList")
    @ResponseBody
    public String listCategory() {
        ArrayList<Category> categorylist= typeService.listCategory();
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",categorylist.size());
        obj.put("data", categorylist);
        return obj.toString();
    }

    //修改图书类别
    @RequestMapping("/editBookType")
    @ResponseBody
    public AjaxResult editBookType(Category category) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            typeService.updateBookType(category);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("修改成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("修改失败");
        }
        return ajaxResult;
    }

    //删除图书类别
    @RequestMapping("/delBookType")
    @ResponseBody
    public AjaxResult delBookType(Integer cid) {
    public String addreader() {
        return "/reader/addReader";
    }

    @RequestMapping("/editReader")
    public String editReader(Integer id,Model model) {
        Reader reader = readerService.selectById(id);
        model.addAttribute("reader",reader);
        model.addAttribute("code",1);
        return "/reader/addReader";
    }

    //修改读者信息
    @RequestMapping("/updateReader")
    @ResponseBody
    public AjaxResult updateReader(Reader reader) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.updateReader(reader);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

    //显示读者信息
    @RequestMapping("/findReader")
    public String findReader(Integer id,Model model) {
        Reader reader = readerService.selectById(id);
        model.addAttribute("reader",reader);
        return "/reader/addReader";
    }

    //删除读者
    @RequestMapping("/delReader")
    @ResponseBody
    public AjaxResult delReader(Integer id) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            readerService.delReader(id);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐