Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.76 KB | None | 0 0
  1. package ScotiaAirlines.models;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.Statement;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9.  
  10. public class Airline {
  11.  
  12.  
  13. //Getter
  14. public HashMap<String,Flight> getFlights()
  15. {
  16. return flights;
  17. }
  18.  
  19.  
  20.  
  21. //Constructor
  22. public Airline()
  23. {
  24. flights = new HashMap<String, Flight>();
  25. }
  26.  
  27.  
  28. //A collection of flights
  29. private HashMap<String,Flight> flights;
  30.  
  31.  
  32.  
  33.  
  34.  
  35. //Adds flight to the collection
  36. public void addFlight(Flight newFlight)
  37. {
  38. if(!flights.containsKey(newFlight.getFlightNumber()))
  39. {
  40. flights.put(newFlight.getFlightNumber(), newFlight);
  41. }
  42. }
  43.  
  44. //Gets seat passed on the seat number entered
  45. public Seat getSeat(String flightNo, String seatNo)
  46. {
  47. //If it's a flight
  48. if (flights.containsKey(flightNo))
  49. {
  50. Flight currentFlight = flights.get(flightNo);
  51.  
  52. //It contains seat details
  53. if(currentFlight.getSeats().containsKey(seatNo))
  54. {
  55. Seat tempSeat = currentFlight.getSeats().get(seatNo);
  56. return tempSeat;
  57. }
  58.  
  59. //if not a temporary seat is created with the seat number
  60. else
  61. {
  62. Seat tempSeat = new Seat(seatNo);
  63. currentFlight.getSeats().put(seatNo, tempSeat);
  64. return tempSeat;
  65. }
  66. }
  67. else
  68. {
  69. return null;
  70. }
  71. }
  72.  
  73. //loads flight from the database
  74. public void loadFlightsFromDB()
  75. {
  76. try
  77. {
  78. //Accesses the database
  79. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  80. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  81. Statement stmt = conn.createStatement();
  82. ResultSet rs = stmt.executeQuery("SELECT * FROM Flight");
  83.  
  84. //builds flights from the details
  85. while(rs.next())
  86. {
  87. String Departure = rs.getString(1);
  88. String Arrival = rs.getString(2);
  89. int Rows = rs.getInt(3);
  90. int Columns = rs.getInt(4);
  91. String flightID = rs.getString(5);
  92.  
  93. Flight newFlight = new Flight(Columns, Rows);
  94. newFlight.setFlightDetails(flightID, Departure, Arrival);
  95. flights.put(flightID, newFlight);
  96. }
  97. }
  98.  
  99. //if that fails message is displayed
  100. catch(Exception ex)
  101. {
  102. String message = ex.getMessage();
  103. }
  104.  
  105. }
  106.  
  107. //Deletes all flights from the database
  108. public void clearFlightsFromDB()
  109. {
  110. try
  111. {
  112.  
  113. //Accesses database
  114. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  115. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  116. Statement stmt = conn.createStatement();
  117. stmt.executeUpdate("DELETE * FROM Flight");
  118. }
  119. //if that fails message is displayed
  120. catch(Exception ex)
  121. {
  122. String message = ex.getMessage();
  123. }
  124. }
  125.  
  126. //Saves current sessions flights to database
  127. public void saveFlightsToDB()
  128. {
  129. try
  130. {
  131.  
  132. //accesses database
  133. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  134. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  135. Statement stmt = conn.createStatement();
  136.  
  137. //saves each flight in the hasmap
  138. for(Map.Entry<String,Flight> f : flights.entrySet())
  139. {
  140. Flight flight = f.getValue();
  141.  
  142. //statement to insert details into database
  143. stmt.executeUpdate("INSERT INTO Flight VALUES ('" + flight.getDeparture() + "','" +
  144. flight.getArrival() + "','" + flight.getRows() + "','" + flight.getColumns() + "','" + flight.getFlightNumber() +"')");
  145. }
  146.  
  147. }
  148. catch(Exception ex)
  149. {
  150. String message = ex.getMessage();
  151. }
  152. }
  153.  
  154.  
  155.  
  156. public void saveSeatsAndPassengersToDB()
  157. {
  158. try
  159. {
  160.  
  161. //accesses db
  162. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  163. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  164. Statement stmt = conn.createStatement();
  165.  
  166. for(Map.Entry<String, Flight> f : flights.entrySet())
  167. {
  168. Flight flight = f.getValue();
  169. for(Map.Entry<String, Seat> s : flight.getSeats().entrySet()) //goes through every seat
  170. {
  171. Seat seat = s.getValue();
  172. String passengerType = "";
  173. String passengerInfo = "";
  174. String passengerName = "";
  175. if(seat.getPassenger() != null)
  176. {
  177. //depending on passenger type decides what info is saved
  178. if(seat.getPassenger().getClass() == (new BusinessTraveller()).getClass())
  179. {
  180. passengerType = "B";
  181. passengerInfo = (((BusinessTraveller) seat.getPassenger()).getCompanyName());
  182. passengerName = seat.getPassenger().getPassengerName();
  183. }
  184. else if (seat.getPassenger().getClass() == (new IslandResident()).getClass())
  185. {
  186. passengerType = "B";
  187. passengerInfo = (((IslandResident) seat.getPassenger()).getIslandOfResidence());
  188. passengerName = seat.getPassenger().getPassengerName();
  189. }
  190. else
  191. {
  192. passengerType = "O";
  193. passengerInfo = String.valueOf((((OrdinaryPassenger) seat.getPassenger()).getCurrentPromotion()));
  194. passengerName = seat.getPassenger().getPassengerName();
  195. }
  196. }
  197.  
  198.  
  199. //Insert statements
  200. stmt.executeUpdate("INSERT INTO Seat VALUES ('" + seat.getSeatNumber() + "','" + seat.getCurrentStatus() + "','" +
  201. seat.getSeatTakings() + "','" + flight.getFlightNumber() +"')");
  202.  
  203. stmt.executeUpdate("INSERT INTO Passenger VALUES ('" + passengerType + "','" + passengerInfo + "','" +
  204. passengerName + "','" + seat.getSeatNumber() + "','" + flight.getFlightNumber() +"')");
  205. }
  206.  
  207. }
  208.  
  209.  
  210.  
  211. }
  212. catch(Exception ex)
  213. {
  214. String message = ex.getMessage();
  215. }
  216. }
  217.  
  218.  
  219. //loads the seats from the db
  220. public void loadSeatsFromDB()
  221. {
  222. try
  223. {
  224.  
  225. //accesses db
  226. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  227. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  228. Statement stmt = conn.createStatement();
  229. ResultSet rs = stmt.executeQuery("SELECT * FROM Seat");
  230.  
  231.  
  232. //gets the details
  233. while(rs.next())
  234. {
  235. String seatNumber = rs.getString(1);
  236. int currentStatus = rs.getInt(2);
  237. int seatTakings = rs.getInt(3);
  238. String FlightId = rs.getString(4);
  239.  
  240. Seat loadedSeat = getSeat(FlightId,seatNumber);
  241. loadedSeat.setCurrentStatus(currentStatus);
  242. loadedSeat.setSeatTakings(seatTakings);
  243.  
  244.  
  245. }
  246. }
  247. catch(Exception ex)
  248. {
  249. String message = ex.getMessage();
  250. }
  251. }
  252.  
  253. //Loads the passngers from the database
  254. public void loadPassengersFromDB()
  255. {
  256. try
  257. {
  258.  
  259. //accesses database
  260. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  261. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  262. Statement stmt = conn.createStatement();
  263. ResultSet rs = stmt.executeQuery("SELECT * FROM Passenger");
  264.  
  265.  
  266. //gets the details
  267. while(rs.next())
  268. {
  269. String passengerInfo = rs.getString(2);
  270. String passengerType = rs.getString(1);
  271. String seatNo = rs.getString(4);
  272. String passengerName = rs.getString(3);
  273. String FlightId = rs.getString(5);
  274.  
  275.  
  276.  
  277. Seat loadedSeat = getSeat(FlightId,seatNo);
  278.  
  279. //fullSeatStatus is set
  280. int fullSeatStatus = loadedSeat.changeSeatStatus(loadedSeat.getCurrentStatus(), loadedSeat.getSeatTakings(), passengerName,
  281. passengerType.charAt(0), passengerInfo);
  282.  
  283.  
  284. Flight loadedFlight= flights.get(FlightId);
  285.  
  286. ///Methods called and updated
  287. loadedFlight.updateSeat(fullSeatStatus);
  288. loadedFlight.calculateTotalFlightTakings();
  289.  
  290. }
  291. }
  292. catch(Exception ex)
  293. {
  294. String message = ex.getMessage();
  295. }
  296. }
  297.  
  298. //Clears seats and passengers from databse
  299. public void ClearSeatsAndPassengers()
  300. {
  301.  
  302. try
  303. {
  304. //accesses database
  305. Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
  306. Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\Euan\\Desktop\\workspace\\ScotiaAirlines\\Airline.accdb");
  307. Statement stmt = conn.createStatement();
  308.  
  309. //Statemeents to update db
  310. stmt.executeUpdate("DELETE * FROM Seat");
  311. stmt.executeUpdate("DELETE * FROM Passenger");
  312. }
  313. catch(Exception ex)
  314. {
  315. String message = ex.getMessage();
  316. }
  317.  
  318. }
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement