博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;
🍅文章末尾获取源码下载方式🍅
源码下载
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取更多源码信息👇🏻👇🏻👇🏻
功能演示
详情演示视频请文字末尾公众号咨询,我会发给您;
一、项目介绍
管理员身份功能介绍:
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>
更多毕业设计可以浏览我的个人主页哦!