目录
1.Model层实现
业务逻辑数据层,
VO/DAO/Service
vo类
package com.meeting.vo;
public class MeetingRoom {
private Integer roomid;
private Integer roomnum;
private Integer capacity;//容量
private String roomname;//名称
private String status;//状态:启用/停用
private String description;//描述
public MeetingRoom() {
super();
}
public MeetingRoom(Integer roomid) {
super();
this.roomid = roomid;
}
public MeetingRoom(Integer roomnum, String roomname, Integer capacity,String status, String description) {
super();
this.roomnum = roomnum;
this.capacity = capacity;
this.roomname = roomname;
this.status = status;
this.description = description;
}
public MeetingRoom(Integer roomid, Integer roomnum, String roomname, Integer capacity,
String status, String description) {
super();
this.roomid = roomid;
this.roomnum = roomnum;
this.capacity = capacity;
this.roomname = roomname;
this.status = status;
this.description = description;
}
public Integer getRoomid() {
return roomid;
}
public void setRoomid(Integer roomid) {
this.roomid = roomid;
}
public Integer getRoomnum() {
return roomnum;
}
public void setRoomnum(Integer roomnum) {
this.roomnum = roomnum;
}
public Integer getCapacity() {
return capacity;
}
public void setCapacity(Integer capacity) {
this.capacity = capacity;
}
public String getRoomname() {
return roomname;
}
public void setRoomname(String roomname) {
this.roomname = roomname;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "MeetingRoom [roomid=" + roomid + ", roomnum=" + roomnum
+ ", capacity=" + capacity + ", roomname=" + roomname
+ ", status=" + status + ", description=" + description + "]";
}
}
DAO类
package com.meeting.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.meeting.util.ConnectionFactory;
import com.meeting.vo.Employee;
import com.meeting.vo.MeetingRoom;
public class MeetingRoomDAO {
// DAO类关联连接工厂类
private Connection conn;
/**
* 添加一个会议室,status默认为0,表示未被占用。当为1时,表示被占用
* @param meetingroom
*/
public void insert(MeetingRoom meetingroom){
conn=ConnectionFactory.getConnection();
String sql="insert into meetingroom"
+
"(roomnum,roomname,capacity,status,description)" +
" values(?,?,?,?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,meetingroom.getRoomnum());
pstmt.setString(2,meetingroom.getRoomname());
pstmt.setInt(3,meetingroom.getCapacity());
pstmt.setString(4,meetingroom.getStatus());
pstmt.setString(5,meetingroom.getDescription());
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
}
/**
* 根据ID查询会议室
* @param roomid
* @return
*/
public MeetingRoom selectByRoomid(int roomid){
conn=ConnectionFactory.getConnection();
MeetingRoom meetingroom=null;
try {
PreparedStatement st=null;
String sql="select * from meetingroom where roomid="+roomid+"";
st = conn.prepareStatement(sql);
ResultSet rs =st.executeQuery(sql);
if(rs.next()==true){
meetingroom=new MeetingRoom();
meetingroom.setRoomid(Integer.parseInt(rs.getString("roomid")));
meetingroom.setRoomnum(Integer.parseInt(rs.getString("roomnum")));
meetingroom.setCapacity(Integer.parseInt(rs.getString("capacity")));
meetingroom.setRoomname(rs.getString("roomname"));
meetingroom.setStatus(rs.getString("status"));
meetingroom.setDescription(rs.getString("description"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
return meetingroom;
}
/**
* 查询所有会议室
* @return
*/
public List<MeetingRoom> selectAllMeetingRooms(){
conn=ConnectionFactory.getConnection();
List<MeetingRoom> list=new ArrayList<MeetingRoom>();
MeetingRoom meetingroom=null;
try {
PreparedStatement st=null;
String sql="select * from meetingroom ";
st = conn.prepareStatement(sql);
ResultSet rs =st.executeQuery(sql);
while(rs.next()){
meetingroom=new MeetingRoom();
meetingroom.setRoomid(Integer.parseInt(rs.getString("roomid")));
meetingroom.setRoomnum(Integer.parseInt(rs.getString("roomnum")));
meetingroom.setCapacity(Integer.parseInt(rs.getString("capacity")));
meetingroom.setRoomname(rs.getString("roomname"));
meetingroom.setStatus(rs.getString("status"));
meetingroom.setDescription(rs.getString("description"));
list.add(meetingroom);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
return list;
}
/**
* 根据ID更新会议室
* @param meetingroom
*/
public void updateMeetingroom(MeetingRoom meetingroom){
conn=ConnectionFactory.getConnection();
String sql="update meetingroom set roomnum=?,roomname=?,capacity=?,status=?,description=? where roomid="+meetingroom.getRoomid();
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, meetingroom.getRoomnum());
pstmt.setString(2, meetingroom.getRoomname());
pstmt.setInt(3, meetingroom.getCapacity());
pstmt.setString(4, meetingroom.getStatus());
pstmt.setString(5,meetingroom.getDescription());
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
}
/**
* 根据ID更新会议室状态
* 当被预定的时候,会更改状态为被占用
* @param roomid
* @param status
*/
public void updateMeetingroomStatus(int roomid,String status){
conn=ConnectionFactory.getConnection();
String sql="update meetingroom set status=? where roomid="+roomid;
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, status);
pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ConnectionFactory.closeConnection();
}
}
public static void main(String[] args){
MeetingRoomDAO dao=new MeetingRoomDAO();
MeetingRoom meetingroom=new MeetingRoom(5,3301,"第XXX会议室",120,"1","最小会议室???");
// dao.insert(meetingroom);
// dao.updateMeetingroom(meetingroom);
// dao.updateMeetingroomStatus(5, "100");
//
// System.out.println(dao.selectByRoomid(6));
List<MeetingRoom> list=dao.selectAllMeetingRooms();
for(MeetingRoom room:list){
System.out.println(room);
}
}
}
service类
package com.meeting.service;
import java.util.List;
import com.meeting.dao.MeetingRoomDAO;
import com.meeting.vo.MeetingRoom;
public class MeetingRoomService {
private MeetingRoomDAO dao=new MeetingRoomDAO();
//一共四个方法
/**
* 查询所有会议室
* @return
*/
public List<MeetingRoom> viewAllMeetingRooms(){
return dao.selectAllMeetingRooms();
}
/**
* 根据id查询会议室
* @param roomid
* @return
*/
public MeetingRoom viewOneMeetingRoom(int roomid){
return dao.selectByRoomid(roomid);
}
/**
* 添加会议室
* @param meetingroom
*/
public void addMeetingRoom(MeetingRoom meetingroom){
dao.insert(meetingroom);
}
/**
* 根据id更新会议室状态
* @param meetingroom
*/
public void updateMeetingRoom(MeetingRoom meetingroom){
dao.updateMeetingroom(meetingroom);
}
}
2.查看所有会议室
写一个新的servlet类
ViewAllMeetingRoomsServlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
MeetingRoomService service=new MeetingRoomService();
//存结果集
List<MeetingRoom> list=service.viewAllMeetingRooms();
request.setAttribute("meetingroomsList", list);
request.getRequestDispatcher("allmeetingrooms.jsp").forward(request, response);
}
新建allmeetingrooms.jsp
<%@ page language="java" import="java.util.*,com.meeting.vo.*"
pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>CoolMeeting会议管理系统</title>
<link rel="stylesheet" href="styles/common03.css" />
</head>
<body>
<div class="page-content">
<div class="content-nav">会议预定 > 查看会议室</div>
<table class="listtable">
<caption>所有会议室:</caption>
<tr class="listheader">
<th>门牌编号</th>
<th>会议室名称</th>
<th>容纳人数</th>
<th>当前状态</th>
<th>操作</th>
</tr>
<c:forEach var="room" items='${requestScope.meetingroomsList}'>
<tr>
<!-- 门牌编号 -->
<td>${room.roomnum}</td>
<!-- 会议室名称 -->
<td>${room.roomname}</td>
<!-- 容纳人数 -->
<td>${room.capacity }</td>
<!-- 当前状态 -->
<!--0表示可用 -->
<c:if test="${room.status eq 0}">
<td>可用</td>
</c:if>
<!--1表示不可用 -->
<c:if test="${room.status eq 1}">
<td>不可用</td>
</c:if>
<td>
<!-- 操作 --> <a class="clickbutton" href="#">查看详情</a>
</td>
</tr>
</c:forEach>
</table>
</div>
<div class="page-footer">
<hr />
更多问题,欢迎联系<a href="mailto:webmaster@eeg.com">管理员</a> <img
src="images/footer.png" alt="CoolMeeting" />
</div>
</body>
</html>
adminleft.jsp
成功
3.查看详情并修改
根据会议室id进行查询
1.创建一个新的Servlet类
package com.meeting.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.meeting.service.MeetingRoomService;
import com.meeting.vo.MeetingRoom;
public class ViewOneMeetingRoomServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到roomid
int roomid=Integer.parseInt(request.getParameter("roomid"));
//调用方法
MeetingRoomService service =new MeetingRoomService();
//把room
MeetingRoom room=service.viewOneMeetingRoom(roomid);
request.setAttribute("room", room);
request.getRequestDispatcher("meetingroomdetail.jsp").forward(request, response);
}
}
2.修改meetingroomdetail.jsp 用JSTL+EL来显示会议室信息
<%@ page language="java"
import="java.util.*,com.meeting.vo.*" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>CoolMeeting会议管理系统</title>
<link rel="stylesheet" href="styles/common03.css"/>
</head>
<body>
<div class="page-content">
<div class="content-nav">
会议预定 > 修改会议室信息
</div>
<form action="UpdateMeetingRoomServlet" method="post">
<fieldset>
<legend>会议室信息</legend>
<table class="formtable">
<tr>
<td>门牌号:</td>
<td>
<!-- 隐藏表单域 -->
<input type="hidden" name="roomid" value='${requestScope.room.roomid}'>
<input id="roomnumber" name="roomnum" type="text" maxlength="10" value='${requestScope.room.roomnum}'/>
</td>
</tr>
<tr>
<td>会议室名称:</td>
<td>
<input id="roomname" name="roomname" type="text" maxlength="20" value='${requestScope.room.roomname}'/>
</td>
</tr>
<tr>
<td>最多容纳人数:</td>
<td>
<input id="roomcapacity" name="capacity" type="text" value='${requestScope.room.capacity}'/>
</td>
</tr>
<tr>
<td>当前状态:</td>
<td>
<c:if test="${requestScope.room.status eq 0 }">
<input type="radio" id="status" name="status" checked="checked" value="0"/><label for="status">可用</label>
<input type="radio" id="status" name="status" value="1"/><label for="status" >不可用</label>
</c:if>
<c:if test="${requestScope.room.status eq 1 }">
<input type="radio" id="status" name="status" value="0"/><label for="status">可用</label>
<input type="radio" id="status" name="status" checked="checked" value="1"><label for="status" >不可用</label>
</c:if>
</td>
</tr>
<tr>
<td>备注:</td>
<td>
<textarea id="description" name="description" maxlength="200" rows="5" cols="60" >${requestScope.room.description}</textarea>
</td>
</tr>
<tr>
<td colspan="2" class="command">
<input type="submit" value="确认修改" class="clickbutton"/>
<input type="button" class="clickbutton" value="返回" onclick="window.history.back();"/>
</td>
</tr>
</table>
</fieldset>
</form>
</div>
<div class="page-footer">
<hr/>
更多问题,欢迎联系<a href="mailto:webmaster@eeg.com">管理员</a>
<img src="images/footer.png" alt="CoolMeeting"/>
</div>
</body>
</html>
3.修改allmeetingrooms.jsp 的"查看详情" 这里加一个url
4.创建UpdateMeetingRoomServlet 显示根据id更新当前的会议室
package com.meeting.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.meeting.service.MeetingRoomService;
import com.meeting.vo.MeetingRoom;
public class UpdateMeetingRoomServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//查看会议室-查看详情-确认修改功能
//获取会议室编号,门牌号,容纳人数
int roomid=Integer.parseInt(request.getParameter("roomid"));
int roomnum=Integer.parseInt(request.getParameter("roomnum"));
int capacity=Integer.parseInt(request.getParameter("capacity"));
//获取会议室名称,状态,说明
String roomname=request.getParameter("roomname");
String status=request.getParameter("status");
String description=request.getParameter("description");
//调用方法
MeetingRoomService service=new MeetingRoomService();
service.updateMeetingRoom(new MeetingRoom(roomid,roomnum,roomname,capacity,status,description));
//跳转页面
request.getRequestDispatcher("ViewAllMeetingRoomsServlet").forward(request, response);
}
}
5.meetingroomdetail.jsp 为了可以使用roomid,使用hidden字段来保存,通过表单提交
配置web.xml
4.添加会议室
1.创建AddMeetingRoomServlet类
把输入的数据库信息添加到数据库中
然后跳转到ViewAllMeetingRoomsServlet显示会议室列表
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//取出输入的信息
int roomnum=Integer.parseInt(request.getParameter("roomnum"));
int capacity=Integer.parseInt(request.getParameter("capacity"));
String roomname=request.getParameter("roomname");
String status=request.getParameter("status");
String description=request.getParameter("description");
//调用addMeetingRoom()方法
MeetingRoomService service=new MeetingRoomService();
service.addMeetingRoom(new MeetingRoom(roomnum,roomname,capacity,status,description));
//跳转页面
request.getRequestDispatcher("ViewAllMeetingRoomsServlet").forward(request, response);
}
2.新增addmeetingroom.jsp
form表单提交到AddMeetingRoomServlet
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>CoolMeeting会议管理系统</title>
<link rel="stylesheet" href="styles/common03.css"/>
</head>
<body>
<div class="page-content">
<div class="content-nav">
会议预定 > 添加会议室
</div>
<form method="post" action="AddMeetingRoomServlet">
<fieldset>
<legend>会议室信息</legend>
<table class="formtable">
<tr>
<td>门牌号:</td>
<td>
<input id="roomnumber" name="roomnum" type="text" placeholder="例如:201" maxlength="10"/>
</td>
</tr>
<tr>
<td>会议室名称:</td>
<td>
<input id="roomname" name="roomname" type="text" placeholder="例如:第一会议室" maxlength="20"/>
</td>
</tr>
<tr>
<td>最多容纳人数:</td>
<td>
<input id="roomcapacity" name="capacity" type="text" placeholder="填写一个正整数"/>
</td>
</tr>
<tr>
<td>当前状态:</td>
<td>
<input type="radio" id="status" name="status" checked="checked" value="0"/><label for="status">可用</label>
<input type="radio" id="status" name="status" value="1"/><label for="status" >不可用</label>
</td>
</tr>
<tr>
<td>备注:</td>
<td>
<textarea id="description" name="description" maxlength="200" rows="5" cols="60" placeholder="200字以内的文字描述"></textarea>
</td>
</tr>
<tr>
<td colspan="2" class="command">
<input type="submit" value="添加" class="clickbutton"/>
<input type="reset" value="重置" class="clickbutton"/>
</td>
</tr>
</table>
</fieldset>
</form>
</div>
<div class="page-footer">
<hr/>
更多问题,欢迎联系<a href="mailto:webmaster@eeg.com">管理员</a>
<img src="images/footer.png" alt="CoolMeeting"/>
</div>
</body>
</html>
配置web.xml
修改adminleft.jsp
在添加会议室那里加一个url
测试: