1、项目介绍
实验室管理系统提供给用户一个实验室信息管理的系统,最新的实验室信息让用户及时了解实验室管理动向,,还能通过交流区互动更方便。本系统采用了B/S体系的结构,使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、学生和教师三个部分,系统管理员主要功能包括主页、个人中心、 学生管理、教师管理、通知公告管理、规章制度管理、实验任务管理、实验室信息管理、学生预约管理、教师预约管理、设备信息管理、设备申请管理、设备报修管理等功能;基本上实现了整个实验室管理系统信息整个过程。
![](https://img-blog.csdnimg.cn/img_convert/dee07b4ba99ae1cb97572dc5874013b2.png)
2、技术框架
运行系统:windows
编程语言:java
系统架构:B/S
后端框框:SSM
前端框架:JSP+jQuery+Ajax+Vue
前后端分离:否
数据库:MySQL
Maven项目:是
数据库表数量:14
运行环境:JDK8+MySQL5.6+Tomcat8.5+IntelliJ IDEA
3、演示视频
基于SSM+JSP的实验室管理系统
4、项目截图
![](https://img-blog.csdnimg.cn/img_convert/7269d9ef90cc1c499312789e68acac05.png)
![](https://img-blog.csdnimg.cn/img_convert/252edd5fff9516cda22f32011286d31a.png)
![](https://img-blog.csdnimg.cn/img_convert/8d3dc98529a0202bb4c1b02e9da5082d.png)
![](https://img-blog.csdnimg.cn/img_convert/302b8d2d57d3e80205c69afbe1cddb81.png)
![](https://img-blog.csdnimg.cn/img_convert/1cdc92a04637243ece5c0e9014ead711.png)
![](https://img-blog.csdnimg.cn/img_convert/099e3f0efd231f9ca8d43149efb356bd.png)
![](https://img-blog.csdnimg.cn/img_convert/a6554057975c551626aeb61f49f62499.png)
![](https://img-blog.csdnimg.cn/img_convert/4706276c3db6033f933b6efbf046636d.png)
![](https://img-blog.csdnimg.cn/img_convert/92c26f083df5362372cca127fbbcca77.png)
![](https://img-blog.csdnimg.cn/img_convert/be668e90afc66bffa34e64ac295d1ccb.png)
![](https://img-blog.csdnimg.cn/img_convert/18347f237d1b3879747ef64238357531.png)
![](https://img-blog.csdnimg.cn/img_convert/088f348fc056b6c81f1bcc912b771766.png)
![](https://img-blog.csdnimg.cn/img_convert/817ff95e49f6ef07281ebcfb2ef87ea5.png)
![](https://img-blog.csdnimg.cn/img_convert/b08cbf8fa236dd723a9a86e88f1e789c.png)
![](https://img-blog.csdnimg.cn/img_convert/2c47123bbaa3f9a21c2c3831979246e9.png)
![](https://img-blog.csdnimg.cn/img_convert/b7eebe9bcdc83c2fbfece88e4f28651e.png)
![](https://img-blog.csdnimg.cn/img_convert/baab3a658cbe4e75d8a26023c793694c.png)
5、文档截图
![](https://img-blog.csdnimg.cn/img_convert/74d2b3d5f72407968e6ac29dac1b654d.png)
![](https://img-blog.csdnimg.cn/img_convert/a37f102ad2a5198fb04c0f6c404aadff.png)
6、代码示例
@RestController
@RequestMapping("/ershouhuishou")
public class ErshouhuishouController {
@Autowired
private ErshouhuishouService ershouhuishouService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ErshouhuishouEntity ershouhuishou,
HttpServletRequest request){
EntityWrapper<ErshouhuishouEntity> ew = new EntityWrapper<ErshouhuishouEntity>();
PageUtils page = ershouhuishouService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, ershouhuishou), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,ErshouhuishouEntity ershouhuishou,
HttpServletRequest request){
EntityWrapper<ErshouhuishouEntity> ew = new EntityWrapper<ErshouhuishouEntity>();
PageUtils page = ershouhuishouService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, ershouhuishou), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( ErshouhuishouEntity ershouhuishou){
EntityWrapper<ErshouhuishouEntity> ew = new EntityWrapper<ErshouhuishouEntity>();
ew.allEq(MPUtil.allEQMapPre( ershouhuishou, "ershouhuishou"));
return R.ok().put("data", ershouhuishouService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(ErshouhuishouEntity ershouhuishou){
EntityWrapper< ErshouhuishouEntity> ew = new EntityWrapper< ErshouhuishouEntity>();
ew.allEq(MPUtil.allEQMapPre( ershouhuishou, "ershouhuishou"));
ErshouhuishouView ershouhuishouView = ershouhuishouService.selectView(ew);
return R.ok("查询二手回收成功").put("data", ershouhuishouView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
ErshouhuishouEntity ershouhuishou = ershouhuishouService.selectById(id);
return R.ok().put("data", ershouhuishou);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
ErshouhuishouEntity ershouhuishou = ershouhuishouService.selectById(id);
return R.ok().put("data", ershouhuishou);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ErshouhuishouEntity ershouhuishou, HttpServletRequest request){
ershouhuishou.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(ershouhuishou);
ershouhuishouService.insert(ershouhuishou);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody ErshouhuishouEntity ershouhuishou, HttpServletRequest request){
ershouhuishou.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(ershouhuishou);
ershouhuishouService.insert(ershouhuishou);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody ErshouhuishouEntity ershouhuishou, HttpServletRequest request){
//ValidatorUtils.validateEntity(ershouhuishou);
ershouhuishouService.updateById(ershouhuishou);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
ershouhuishouService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<ErshouhuishouEntity> wrapper = new EntityWrapper<ErshouhuishouEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = ershouhuishouService.selectCount(wrapper);
return R.ok().put("count", count);
}
}