Guest User

Untitled

a guest
May 10th, 2016
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. package server;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10.  
  11. /**
  12. * Class for connecting to a database and get information
  13. * Created by Gustav on 2016-04-06.
  14. */
  15. public class Connect {
  16.  
  17. private Connection conn;
  18. private Statement st;
  19. private ResultSet rs;
  20. private Room room;
  21. private HashMap<String, String> coordinatesHash = new HashMap<String, String>();
  22. private ArrayList<String> distinctFloors = new ArrayList<String>();
  23.  
  24. /**
  25. * Connects to the given database
  26. */
  27. public Connect() {
  28.  
  29. try {//
  30. Class.forName("com.mysql.jdbc.Driver");
  31. // conn = DriverManager.getConnection("jdbc:mysql://10.2.13.227:3306/mapster", "Gustav1993", "password");
  32. // conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mapster", "Guest", "mapster");
  33. // conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mapster", "root", "");
  34. conn = DriverManager.getConnection("jdbc:mysql://84.219.169.69/mapster", "gustav", "1234");
  35. st = conn.createStatement();
  36.  
  37. } catch (Exception e) {
  38. System.out.println(e.toString());
  39. }
  40.  
  41. }
  42.  
  43. /**
  44. * Prints all the data in the selected database
  45. */
  46. public void printAllData() {
  47.  
  48. try {
  49. String query = "select * from niagara";
  50. rs = st.executeQuery(query);
  51. System.out.println("Records from database:");
  52. while (rs.next()) {
  53.  
  54. room = new Room(rs.getString(1), rs.getInt(2),
  55. rs.getString(3), rs.getString(4));
  56.  
  57. System.out.println("Floor: " + room.getFloor()+ " Name: " + room.getName()
  58. + " X/Y: " + room.getCoor() + " Path: " + room.getPath());
  59. }
  60.  
  61. } catch (Exception e) {
  62. System.out.println(e.toString());
  63. }
  64. }
  65.  
  66. /**
  67. * Search for a room in the database with the given string, creates a room object
  68. * from the values in the database and returns the room.
  69. * @param searchFor
  70. * @return room
  71. */
  72. public Room searchedRoom(String searchFor, String building) {
  73.  
  74. String query = "select * FROM " + building + " WHERE name = '" + searchFor + "'";
  75.  
  76. try {
  77. rs = st.executeQuery(query);
  78. rs.next();
  79.  
  80. room = new Room(rs.getString(1), rs.getInt(2),
  81. rs.getString(3), rs.getString(4));
  82.  
  83. } catch (SQLException e) {
  84. e.printStackTrace();
  85. }
  86.  
  87. return room;
  88. }
  89.  
  90. /**
  91. * Returns true if the room that is searched for exists, else false
  92. * @param searchFor
  93. * @param building
  94. * @return ifRoomExist
  95. */
  96. public boolean searchExist(String searchFor, String building) {
  97. String query = "select * FROM " + building + " WHERE name = '" + searchFor + "'";
  98. try {
  99. rs = st.executeQuery(query);
  100.  
  101. if(rs.next()) {
  102. return true;
  103. }
  104. } catch (SQLException e) {
  105. e.printStackTrace();
  106. }
  107. return false;
  108. }
  109.  
  110. public HashMap<String, String> getHashMap() {
  111. return coordinatesHash;
  112.  
  113. }
  114.  
  115. public ArrayList<String> getDistinctFloors() {
  116. return distinctFloors;
  117. }
  118.  
  119. public void whichBuilding(String building) throws SQLException {
  120.  
  121. switch (building) {
  122.  
  123. case "#orkanen":
  124. getBuilding("orkanen");
  125. break;
  126.  
  127. case "#niagara":
  128. getBuilding("niagara");
  129. //requestFloors("niagara");
  130. break;
  131.  
  132. case "#gaddan":
  133. getBuilding("gaddan");
  134. break;
  135. }
  136.  
  137. }
  138.  
  139. // Retrieves name and coordinates for all rooms of a building
  140. public void getBuilding(String building) throws SQLException {
  141. String name, coordinates;
  142.  
  143. String query = "SELECT name, coordinates FROM " + building;
  144. rs = st.executeQuery(query);
  145. coordinatesHash.clear();
  146. while (rs.next()) {
  147. name = rs.getString("name");
  148. coordinates = rs.getString("coordinates");
  149. coordinatesHash.put(name, coordinates);
  150. System.out.println("hash klar");
  151. // File file = new File(building);
  152. // try {
  153. // BufferedWriter bw = new BufferedWriter(new FileWriter(file));
  154. // for (String p : combo.keySet()) {
  155. // bw.write(p + "," + combo.get(p));
  156. // bw.newLine();
  157. // }
  158. // bw.flush();
  159. // bw.close();
  160. // } catch (IOException e) {
  161. // e.printStackTrace();
  162. // }
  163.  
  164. }
  165. requestFloors(building);
  166. System.out.println("skickat vidare strängen buildning");
  167. }
  168.  
  169. public void requestFloors(String building) {
  170. String query = null;
  171.  
  172. switch (building) {
  173.  
  174. case "orkanen":
  175. query = "SELECT path FROM downloadable LIMIT 5;";
  176. break;
  177.  
  178. case "niagara":
  179. query = "SELECT path FROM downloadable LIMIT 7;"; // should be 5,6. Changed for test
  180. break;
  181.  
  182. case "gaddan":
  183. query = "SELECT path FROM downloadable LIMIT 11, 4;";
  184. break;
  185.  
  186. }
  187.  
  188. try {
  189. rs = st.executeQuery(query);
  190. System.out.println("After query is executed" + query);
  191. distinctFloors.clear();
  192. while (rs.next()) {
  193. distinctFloors.add(rs.getString("path"));
  194.  
  195. }
  196.  
  197. } catch (SQLException e) {
  198. e.printStackTrace();
  199. }
  200.  
  201. }
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. }
Add Comment
Please, Sign In to add comment