忙完了自己的事,继续之前的酒店管理系统。基本每天挤一点时间出来做这个系统。顺便训练自己的基础
在贴代码之前写一件事,中午在测试房间分页的时候,一直显示getConn()为空,所用的连接池是proxool,搞了好久,一步一步debug才突然想起来,连接池是需要跟服务器挂钩的,直接在本地用java写测试类调用是不行的。。解决的办法就是在servlet里面测试
Hotel的基本就是之前的,开始准备Room的
贴上room的dao实现:
package edu.fjnu.hotelsys.dao.impl;
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 edu.fjnu.hotelsys.dao.HotelDao;
import edu.fjnu.hotelsys.dao.RoomDao;
import edu.fjnu.hotelsys.domain.Hotel;
import edu.fjnu.hotelsys.domain.Room;
import edu.fjnu.hotelsys.exception.DataAccessException;
import edu.fjnu.hotelsys.service.impl.RoomQueryHelper;
import edu.fjnu.hotelsys.utils.DBUtils;
public class RoomDaoImpl implements RoomDao {
private static final String SQL_ADD="insert into room(room_no,room_type,room_equip,room_status,room_memo,hotel_no) values(?,?,?,?,?,?)";
private static final String SQL_LOAD="select * from room order by room_id desc";
private static final String SQL_REMOVE="delete from room where room_id = ?";
private static final String SQL_UPDATE="update room set room_no=?,room_type=?,room_equip=?,room_status=?,room_memo=?,hotel_no=? where room_id = ?";
private static final String SQL_FINDBYID="select * from room where room_id = ?";
private static final String SQL_LOAD_BASE="select * from room where 1=1";
private HotelDao hotelDao = new HotelDaoImpl();
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rset;
/**
* 添加房间
* @param room
* @author Harry
*/
public void addRoom(Room room) {
conn =DBUtils.getInstance().getConn();
try {
pstmt = conn.prepareStatement(SQL_ADD);
pstmt.setString(1, room.getRoomNo());
pstmt.setString(2, room.getRoomType());
StringBuffer sb = new StringBuffer();
for(String equip:room.getRoomEquip())
sb.append(equip).append("|");
if(sb.length()>0)
sb.deleteCharAt(sb.length()-1);//鍑忓幓鏈�悗涓�釜 |
pstmt.setString(3, sb.toString());
pstmt.setString(4, room.getRoomStatus());
pstmt.setString(5, room.getRoomMemo());
pstmt.setInt(6, room.getHotel().getHotelId());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtils.getInstance().ReleaseRes(conn, pstmt, null);
}
}
/**
* 删除房间
* @param id
* @author Harry
*/
public void removeRoom(Integer id) {
conn = DBUtils.getInstance().getConn();
try {
pstmt = conn.prepareStatement(SQL_REMOVE);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtils.getInstance().ReleaseRes(conn, pstmt, null);
}
}
/**
* 更新房间
* @param room
* @author Harry
*/
public void updateRoom(Room room){
conn = DBUtils.getInstance().getConn();
try {
pstmt = conn.prepareStateme