原生态JAVAEE酒店管理系统系列四

博主分享了在开发原生态JAVAEE酒店管理系统过程中的经验,讲述了在进行房间分页测试时遇到的问题,即使用Proxool连接池在本地测试时出现getConn()为空的情况。通过调试,发现连接池需与服务器结合使用,最终在servlet中解决问题。接下来,博主展示了Room的DAO实现及新建Room的界面代码。
摘要由CSDN通过智能技术生成

忙完了自己的事,继续之前的酒店管理系统。基本每天挤一点时间出来做这个系统。顺便训练自己的基础

在贴代码之前写一件事,中午在测试房间分页的时候,一直显示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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值