基于Springboot+myBatis的图书借阅系统

  博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

 源码下载

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取更多源码信息👇🏻👇🏻👇🏻

https://download.csdn.net/download/u014388322/88380402

功能演示

详情演示视频请文字末尾公众号咨询,我会发给您;

一、项目介绍

管理员身份功能介绍:

1:用户管理:管理用户的注册信息
2:类型管理:添加和查看书籍类型
3:书籍管理:添加和查看书籍信息
4:统计管理:通过图表查看数据的信息
5:借阅管理:查看学生的借阅信息


用户功能介绍:
1:注册模块,用户在使用软件前需要进行用户信息的注册
2:用户登录:用户通过自己的注册信息进行软件的登录
3:图书信息:用户可以查看发布的图书信息
4:图书借阅:用户可以对自己感兴趣的图书信息进行借阅
5:借阅记录:用户可以查看自己的借阅记录,以及进行还书的操作

二、运行环境

1:服务端idea2018进行开发;
2:mysql数据库进行数据存储;
3:需要jdk1.8以上

三、使用技术

1:框架Springboot

2:框架myBatis

四、数据库设计


DROP TABLE IF EXISTS `apply`;
CREATE TABLE `apply` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bookid` int(11) DEFAULT NULL,
  `applyuserid` int(11) DEFAULT NULL,
  `applyusername` varchar(255) DEFAULT NULL,
  `applyphone` varchar(255) DEFAULT NULL,
  `applymajor` varchar(255) DEFAULT NULL,
  `applystart` varchar(255) DEFAULT NULL,
  `applyend` varchar(255) DEFAULT NULL,
  `applytime` varchar(255) DEFAULT NULL,
  `applystate` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bookname` varchar(255) DEFAULT NULL,
  `booktypeid` int(11) DEFAULT NULL,
  `booktypename` varchar(255) DEFAULT NULL,
  `bookinfor` varchar(500) DEFAULT NULL,
  `bookimage` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=278331399 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for type
-- ----------------------------
DROP TABLE IF EXISTS `type`;
CREATE TABLE `type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `typename` varchar(255) DEFAULT NULL,
  `userid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `uname` varchar(200) CHARACTER SET utf8 NOT NULL,
  `uphone` varchar(100) CHARACTER SET utf8 NOT NULL,
  `upswd` varchar(200) CHARACTER SET utf8 NOT NULL,
  `utime` varchar(300) CHARACTER SET utf8 NOT NULL,
  `usearch` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=112 DEFAULT CHARSET=latin1;

五、部分代码和截图

 用户信息


记录信息 

图表统计信息 

 

书籍信息 

 

借阅信息 

1:Controoler信息
   @RequestMapping("applyLook")
    public ModelAndView applyLook(int  userid) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("listData",applyMapper.applyBook(userid));
        modelAndView.setViewName("list_apply");//逻辑视图
        return modelAndView;
    }


    @RequestMapping("applyLookAdmin")
    public ModelAndView applyLookAdmin() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("listData",applyMapper.applyBookAdmin());
        modelAndView.setViewName("list_applyadmin");//逻辑视图
        return modelAndView;
    }



    @RequestMapping("addUser")
    public ModelAndView adduser(User user) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");// 设置日期格式
        user.setUtime(df.format(new Date()));
        userMapper.insert(user);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("login");//逻辑视图
        return modelAndView;
    }


    @RequestMapping("listUser")
    public ModelAndView listUser(User user) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("listData",userMapper.selectList(null));
        modelAndView.setViewName("list_user");//逻辑视图
        return modelAndView;
    }


    @RequestMapping("deleteUser")
    public String deleteUser(String id) {
        userMapper.deleteById(id);
        return "forward:/listUser";//默认先找了页面
    }

    @RequestMapping("login")
    public ModelAndView login(HttpServletRequest request,User user) {

        Map<String ,Object> map = new HashMap<>();
        map.put("uphone",user.getUphone());
        map.put("upswd",user.getUpswd());
        List<User> list = userMapper.selectByMap(map);

        ModelAndView modelAndView = new ModelAndView();
        if(list.size()>0){

            HttpSession session = request.getSession();
            session.setAttribute("userid",list.get(0).getId());
            session.setAttribute("username",list.get(0).getUname());

            if(user.getUphone().equals("admin")){
                modelAndView.setViewName("indexAdmin");//逻辑视图
            }else{
                modelAndView.setViewName("indexUser");//逻辑视图
            }


        }else{
            ErrorModel errorModel = new ErrorModel();
            errorModel.setErrorInfor("用户不存在,手机号码或者密码错误");
            modelAndView.addObject("dateResult",errorModel);
            modelAndView.setViewName("login");//逻辑视图
        }
        return modelAndView;
    }

2:页面信息 
 <c:forEach items="${listData}" var="model" varStatus="sta">
                    <tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'">
                        <td align="center" valign="middle" class="borderright borderbottom">${sta.index+1}  </td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.bookname}</td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.applyusername}</td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.applyphone}</td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.applymajor}</td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.applystart}</td>
                        <td align="center" valign="middle" class="borderright borderbottom">${model.applyend}</td>

                        <td align="center" valign="middle" class="borderbottom">

                            <a href="detail_book?id=${model.bookid}" target="mainFrame"
                               onFocus="this.blur()" class="add">查看详情</a>
                        </td>


                        <td align="center" valign="middle" class="borderbottom">

                            <c:if test="${model.applystate==1}">
                                <a href="updateApplyState?id=${model.id}&userid=${userid}" target="mainFrame" class="add">未还书</a>
                            </c:if>
                            <c:if test="${model.applystate!=1}">
                                <div style="color: #39A631;font-weight: bold">已还书</div>
                            </c:if>

                        </td>
                    </tr>
                </c:forEach>

更多毕业设计可以浏览我的个人主页哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android毕业设计源码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值