package oracle.otnsamples.jsp.roomsinformationsample;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleDriver;
public class RoomsInformationProcedure {
public static void getRoomDetails(String hotelId, String roomType,
int[] numRoomsAvailable, float[] standardRoomRate) {
Connection connection = null;
try {
connection = new OracleDriver().defaultConnection();
if (roomType.equals("ORCL"))
roomType = "OTHR";
PreparedStatement stmt = connection.prepareStatement
("SELECT standard_rate" +
" FROM available_room_types WHERE " +
" hot_id = TO_NUMBER(?) AND room_type = ? ");
stmt.setString(1,hotelId); stmt.setString(2,roomType);
ResultSet rset = stmt.executeQuery();
while (rset.next()) {
standardRoomRate[0] = rset.getFloat(1); }
rset.close();
stmt.close();
stmt = connection.prepareStatement("SELECT TOTAL_"+ roomType +
" FROM room_availability WHERE " +
" hot_id = TO_NUMBER(?) AND " +
" booking_date = ( SELECT MAX(booking_date) " +
" FROM room_availability " +
" WHERE hot_id = TO_NUMBER(?) )" );
stmt.setString(1,hotelId); stmt.setString(2,hotelId);
rset = stmt.executeQuery();
while (rset.next()) {
numRoomsAvailable[0] = rset.getInt(1); }
rset.close();
stmt.close();
} catch (SQLException ex) { ex.printStackTrace();
} finally {
try{
if (connection != null || !connection.isClosed())
connection.close(); } catch(SQLException ex){
ex.printStackTrace();
}
}
}
}
|