0、效果展示
1、概述
1. 实验室设备类别管理:作为一个实验室设备管理系统,涉及到的实验室设备是很多的,这就有必要对实验室设备进行分门别类,这样有利于对实验室设备的查询和管理,管理员登陆系统后可以对实验室设备类别进行添加,更新和删除操作。
2. 实验室设备管理:当管理员对实验室设备类别信息添加完成后,就可以开始进行实验室设备信息的录入了。
3. 实验室管理:管理员可以添加新的实验室,如名称、介绍等。
4. 实验室设备借用管理:管理员登陆系统后。可以管理学生的借用信息。如设备名称、学生、借用数量、借用时间、是否归还、归还时间。
5. 实验室设备预约管理:主要实现了实验室的预约,如实验室、时间、人数。
2、搭建环境
本文以实现一个实验室设备管理系统为目标,从环境搭建到编码实现全过程讲述
我们使用javaweb、J2EE来构建实验室设备管理系统,环境使用最新版jdk和tomcat,配合mysql数据库
开发工具使用idea(也可以使用eclipse),数据库管理工具使用Navicat Premium
开发框架使用JavaBean Servlet MVC结构;
没有使用SSH(Struts+Spring+Hibernate)或SSM(Spring+SpringMVC+MyBatis),这两个框架我们在别的项目中再介绍开发过程
在项目中会引入My97DatePicker作为前端日期时间选择工具,使用fckeditor作为富媒体编辑器(也可以使用百度的ueditor)
使用DWR(Direct Web Remoting)用于改善web页面与Java类交互,实现远程服务器端AJAX读取登录数据。
使用JSTL(Java server pages standarded tag library,即JSP标准标签库),此库是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
3、数据表结构
表4.5学生信息表(t_user)
字段名 | 数据类型 | 字段描述 | 长度 | 主键 |
ID | Int | 编号 | 4 | √ |
Name | Varchar | 姓名 | 50 | |
Sex | Varchar | 性别 | 50 | |
Age | Int | 年龄 | 4 | |
Address | Varchar | 住址 | 50 | |
Tel | Varchar | 联系方式 | 50 | |
Jiehao | Varchar | 证号 | 50 |
表4.6借用信息表(t_jieyue)
字段名 | 数据类型 | 字段描述 | 长度 | 主键 |
ID | Int | 编号 | 4 | √ |
Book_id | Int | 实验室设备编号 | 50 | |
User_id | Int | 学生编号 | 50 | |
Jieyueshijian | Varchar | 借用时间 | 4 | |
Jieyueshuliang | Varchar | 借用数量 | 50 | |
Guihuanshijian | Varchar | 归还时间 | 50 | |
Beizhu | Varchar | 备注 | 50 |
表4.7 管理员信息表(admin)
字段名 | 数据类型 | 字段描述 | 长度 | 主键 |
ID | Int | 编号 | 10 | √ |
Name | varchar | 登陆账号 | 50 | |
Pwd | varchar | 登陆密码 | 50 |
4、后端代码示例
package com.action;
import com.dao.DB;
import com.orm.Tshiyanshi;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class shiyanshi_servlet extends HttpServlet
{
public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException
{
String type=req.getParameter("type");
if(type.endsWith("shiyanshiMana"))
{
shiyanshiMana(req, res);
}
if(type.endsWith("shiyanshiAdd"))
{
shiyanshiAdd(req, res);
}
if(type.endsWith("shiyanshiDel"))
{
shiyanshiDel(req, res);
}
if(type.endsWith("shiyanshiAll"))
{
shiyanshiAll(req, res);
}
if(type.endsWith("cedit"))
{
cedit(req, res);
}
if(type.endsWith("saveedit"))
{
saveedit(req, res);
}
}
public void cedit(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
//System.out.println(req.getParameter("userId")+"**");
List shiyanshiList=new ArrayList();
String sql="select * from t_shiyanshi where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
Tshiyanshi shiyanshi=new Tshiyanshi();
shiyanshi.setId(rs.getInt("id"));
shiyanshi.setName(rs.getString("name"));
shiyanshi.setJieshao(rs.getString("jieshao"));
shiyanshiList.add(shiyanshi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("shiyanshiList", shiyanshiList);
req.getRequestDispatcher("admin/shiyanshi/shiyanshiedit.jsp").forward(req, res);
}
public void saveedit(HttpServletRequest req,HttpServletResponse res)
{
String sql="update t_shiyanshi set name='"+req.getParameter("name")+"',jieshao='"+req.getParameter("jieshao")+"' where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "shiyanshi?type=shiyanshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void shiyanshiAdd(HttpServletRequest req,HttpServletResponse res)
{
String name=req.getParameter("name");
String jieshao=req.getParameter("jieshao");
String del="no";
String sql="insert into t_shiyanshi (name,jieshao,del) values (?,?,?)";
Object[] params={name,jieshao,del};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "shiyanshi?type=shiyanshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void shiyanshiDel(HttpServletRequest req,HttpServletResponse res)
{
String sql="update t_shiyanshi set del='yes' where id="+Integer.parseInt(req.getParameter("id"));
Object[] params={};
DB mydb=new DB();
mydb.doPstm(sql, params);
mydb.closed();
req.setAttribute("message", "操作成功");
req.setAttribute("path", "shiyanshi?type=shiyanshiMana");
String targetURL = "/common/success.jsp";
dispatch(targetURL, req, res);
}
public void shiyanshiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List shiyanshiList=new ArrayList();
String sql="select * from t_shiyanshi where del='no'";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
Tshiyanshi shiyanshi=new Tshiyanshi();
shiyanshi.setId(rs.getInt("id"));
shiyanshi.setName(rs.getString("name"));
shiyanshi.setJieshao(rs.getString("jieshao"));
shiyanshiList.add(shiyanshi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("shiyanshiList", shiyanshiList);
req.getRequestDispatcher("admin/shiyanshi/shiyanshiMana.jsp").forward(req, res);
}
public void shiyanshiAll(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
List shiyanshiList=new ArrayList();
String sql="select * from t_shiyanshi where del='no'";
Object[] params={};
DB mydb=new DB();
try
{
mydb.doPstm(sql, params);
ResultSet rs=mydb.getRs();
while(rs.next())
{
Tshiyanshi shiyanshi=new Tshiyanshi();
shiyanshi.setId(rs.getInt("id"));
shiyanshi.setName(rs.getString("name"));
shiyanshi.setJieshao(rs.getString("jieshao"));
shiyanshiList.add(shiyanshi);
}
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
mydb.closed();
req.setAttribute("shiyanshiList", shiyanshiList);
req.getRequestDispatcher("admin/shiyanshi/shiyanshiAll.jsp").forward(req, res);
}
public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response)
{
RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
try
{
dispatch.forward(request, response);
return;
}
catch (ServletException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void destroy()
{
}
}
5、前端代码示例
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page isELIgnored="false" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="<%=path %>/css/bootstrap.min.css" rel="stylesheet"><!--bootstrap框架-->
<link href="<%=path %>/css/font-awesome.min.css" rel="stylesheet"><!--图标字体框架-->
<link href="<%=path %>/css/style.min.css" rel="stylesheet"><!--后台管理样式主文件-->
<link href="<%=path %>/css/bootstrap-table.min.css" rel="stylesheet"><!--bootstrap-table表格插件-->
<script language="javascript">
function shiyanshiDel(id)
{
if(confirm('您确定删除吗?'))
{
window.location.href="<%=path %>/shiyanshi?type=shiyanshiDel&id="+id;
}
}
function edit(id)
{
window.location.href="<%=path %>/shiyanshi?type=cedit&id="+id;
}
function shiyanshiAdd()
{
var url="<%=path %>/admin/shiyanshi/shiyanshiAdd.jsp";
//var n="";
//var w="480px";
//var h="500px";
//var s="resizable:no;help:no;status:no;scroll:yes";
//openWin(url,n,w,h,s);
window.location.href=url;
}
</script>
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<!--标题栏开始-->
<div class="ibox-title">
<h5>实验室管理</h5>
</div>
<!--标题栏结束-->
<div class="ibox-content">
<!--工具框 开始-->
<!--工具框 结束-->
<!-- 内容列表 -->
<div class="table-responsive">
<!--<table id="datalist22" >-->
<table id="datalist" >
<thead>
<tr>
<th data-halign="center" data-align="center">名称</th>
<th data-halign="center" data-align="center">介绍</th>
<th data-halign="center" data-align="center">选项</th>
</tr>
</thead>
<c:forEach items="${requestScope.shiyanshiList}" var="shiyanshi">
<tr>
<td>${shiyanshi.name}</td>
<td>${shiyanshi.jieshao}</td>
<td>
<input type="button" value="删除" onclick="shiyanshiDel(${shiyanshi.id})"/>
<input type="button" value="修改" onclick="edit(${shiyanshi.id})"/>
</td>
</tr>
</c:forEach>
</table>
<table width='98%' border='0'style="margin-top:8px;margin-left: 5px;">
<tr>
<td>
<input type="button" value="添加" style="width: 80px;" onclick="shiyanshiAdd()" />
</td>
</tr>
</table>
</div>
<!--表格数据区------------结束-->
</div>
</div>
</div>
</div>
</div>
<script src="<%=path %>/js/jquery.min.js"></script><!--jquery框架-->
<script src="<%=path %>/js/bootstrap.min.js"></script><!--bootstrap框架 -->
<script src="<%=path %>/js/content.min.js"></script><!--后台网站主框架使用-->
<!--表格-->
<script src="<%=path %>/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="<%=path %>/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
<script src="<%=path %>/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="<%=path %>/js/bootstrap-table.js"></script>
<!--表格-->
<!--导出-->
<script src="<%=path %>/js/plugins/bootstrap-table/bootstrap-table-export.js"></script>
<script src="<%=path %>/js/plugins/bootstrap-table/tableExport.js"></script>
</body>
</html>