Guest User

Untitled

a guest
Nov 15th, 2017
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.27 KB | None | 0 0
  1. package is.hi.byrjun.repository;
  2.  
  3. import is.hi.byrjun.model.SportVenues;
  4. import is.hi.byrjun.model.SportVenuesBookings;
  5.  
  6. import java.net.URI;
  7. import java.net.URISyntaxException;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import org.springframework.stereotype.Repository;
  16.  
  17. /**
  18. *
  19. * @author Gunnar Már Harðarson
  20. * @date október 2017
  21. * HBV501G Hugbúnaðarverkefni 1
  22. * Háskóli Íslands
  23. *
  24. * Safn af íþróttasölum
  25. *
  26. */
  27. @Repository
  28. public class SportVenuesRepositoryImp implements SportVenuesRepository{
  29.  
  30. //Listi af íþróttasölum
  31. private List<SportVenues> sportvenues;
  32.  
  33. // Attributes for SQL Connection
  34. /*
  35. Connection con;
  36. private final String url = "jdbc:postgresql://ec2-54-247-124-9.eu-west-1.compute.amazonaws.com:5432/defmqqmc8ri7to?user=gijczsvgxuzort&password=75fe2e36d3c5d36814293d7152e26c8150ff5b007a751a1716c03a4cee57ce62&sslmode=require";
  37. private final String driver = "org.postgresql.Driver";
  38. private final String userName = "gijczsvgxuzort";
  39. private final String password = "75fe2e36d3c5d36814293d7152e26c8150ff5b007a751a1716c03a4cee57ce62";
  40.  
  41.  
  42. // Connection to Database
  43. public Connection connect() {
  44. try {
  45. Class.forName(driver);
  46. con = DriverManager.getConnection(url, userName, password);
  47. if (con == null) {
  48. System.out.println("Connection cannot be established");
  49. }
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. }
  53. return con;
  54. }
  55. */
  56. // Connection to Heroku database
  57. private static Connection getConnection() throws URISyntaxException, SQLException {
  58. URI dbUri = new URI(System.getenv("DATABASE_URL"));
  59.  
  60. String username = dbUri.getUserInfo().split(":")[0];
  61. String password = dbUri.getUserInfo().split(":")[1];
  62. String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();
  63.  
  64. return DriverManager.getConnection(dbUrl, username, password);
  65. }
  66.  
  67. public SportVenuesRepositoryImp() {
  68. sportvenues = new ArrayList<SportVenues>();
  69. }
  70.  
  71. @Override
  72. public List<SportVenues> getAll() {
  73. ArrayList<SportVenues> list = new ArrayList<SportVenues>();
  74. try {
  75. Connection con = getConnection();
  76. PreparedStatement ps = con.prepareStatement("SELECT * FROM sportvenues");
  77. ResultSet rs = ps.executeQuery();
  78.  
  79. while(rs.next()) {
  80. SportVenues temp = new SportVenues(rs.getInt("sportvenuenumber"),
  81. rs.getString("name"),
  82. rs.getString("location"),
  83. rs.getString("street"),
  84. rs.getInt("price"),
  85. rs.getInt("phonenr"),
  86. rs.getString("email"),
  87. rs.getString("description"));
  88. list.add(temp);
  89. }
  90. } catch (Exception e) {
  91. e.printStackTrace();
  92. }
  93.  
  94. this.sportvenues = list;
  95. return sportvenues;
  96. }
  97.  
  98. // Add a sportvenue booking to the sportvenuebookings table in database
  99. public void addNewSportVenueBooking(SportVenuesBookings booking) {
  100. try {
  101. Connection con = getConnection();
  102. PreparedStatement ps = con.prepareStatement("INSERT INTO sportvenuebookings ("
  103. + "name, kennitala, email, phonenr, sportvenuenumber, dagsetning) VALUES ("
  104. + "?,?,?,?,?,?)");
  105.  
  106. ps.setString(1, booking.getName());
  107. ps.setLong(2, booking.getKennitala());
  108. ps.setString(3, booking.getEmail());
  109. ps.setInt(4, booking.getPhonenr());
  110. ps.setInt(5, booking.getSportvenuenumber());
  111. ps.setString(6, booking.getDate());
  112.  
  113. // execute the prepared statement insert
  114. ps.executeUpdate();
  115. ps.close();
  116. } catch (Exception e) {
  117. e.printStackTrace();
  118. }
  119. }
  120.  
  121. @Override
  122. public int addNewSport(String name, String loc, String streetAddrs, int price, int maxppl, int phoneNr,
  123. String email, String key, String description) {
  124. int result = -1;
  125. try {
  126. Connection con = getConnection();
  127. PreparedStatement ps = con.prepareStatement("INSERT INTO sportvenues ("
  128. + "name, location, street, price, phonenr, email, key, description) VALUES ("
  129. + "?,?,?,?,?,?,?,?)");
  130.  
  131. ps.setString(1, name);
  132. ps.setString(2, loc);
  133. ps.setString(3, streetAddrs);
  134. ps.setInt(4, price);
  135. ps.setInt(5, phoneNr);
  136. ps.setString(6, email);
  137. ps.setString(7, key);
  138. ps.setString(8, description);
  139.  
  140. //Execute the prepared statement insert
  141. ps.executeUpdate();
  142. ps.close();
  143.  
  144. ps = con.prepareStatement("SELECT * FROM sportvenues");
  145. ResultSet rs = ps.executeQuery();
  146.  
  147. while (rs.next()) {
  148. String temp = rs.getString("name");
  149. if (temp.equals(name)) {
  150. result = rs.getInt("sportvenuenumber");
  151. }
  152. }
  153.  
  154. ps.close();
  155.  
  156. } catch (Exception e) {
  157. e.printStackTrace();
  158. }
  159.  
  160. return result;
  161. }
  162.  
  163. @Override
  164. public SportVenues verifySport(int id, String key) {
  165. try {
  166. Connection con = getConnection();
  167. PreparedStatement ps = con.prepareStatement("SELECT * FROM sportvenues");
  168. ResultSet rs = ps.executeQuery();
  169.  
  170. while(rs.next()) {
  171. if (rs.getInt("sportvenuenumber") == id && rs.getString("key").equals(key)) {
  172. SportVenues temp = new SportVenues(rs.getInt("sportvenuenumber"),
  173. rs.getString("name"),
  174. rs.getString("location"),
  175. rs.getString("street"),
  176. rs.getInt("price"),
  177. rs.getInt("phonenr"),
  178. rs.getString("email"),
  179. rs.getString("description"));
  180. return temp;
  181. }
  182. }
  183. } catch (Exception e) {
  184. e.printStackTrace();
  185. }
  186. throw new IllegalArgumentException("ID/Key combination is not valid");
  187. }
  188.  
  189.  
  190. @Override
  191. public void removeSport(int id) {
  192. try {
  193. Connection con = getConnection();
  194. PreparedStatement ps = con.prepareStatement("DELETE FROM sportvenues WHERE sportvenuenumber = " + id);
  195. ps.execute();
  196. ps.close();
  197. } catch (Exception e) {
  198. e.printStackTrace();
  199. }
  200. }
  201.  
  202. // Update Sportvenues in database
  203. public void changeSport(SportVenues updated) {
  204. try {
  205. Connection con = getConnection();
  206. PreparedStatement ps = con.prepareStatement("UPDATE sportvenues SET name = ?,"
  207. + "location = ?, street = ?, price = ?, phonenr = ?,"
  208. + "email = ?, " + "description = ? WHERE sportvenuenumber = ?");
  209. ps.setString(1, updated.getName());
  210. ps.setString(2, updated.getLocation());
  211. ps.setString(3, updated.getAddress());
  212. ps.setInt(4, updated.getPrice());
  213. ps.setInt(5, updated.getPhonenr());
  214. ps.setString(6, updated.getEmail());
  215. ps.setString(7, updated.getDescription());
  216. ps.setInt(8, updated.getId());
  217.  
  218. // Execute the prepared statement update
  219. ps.executeUpdate();
  220. ps.close();
  221.  
  222. } catch (Exception e) {
  223. e.printStackTrace();
  224. }
  225. }
  226.  
  227. public List<String> checkAvalible(SportVenues sport) {
  228. try {
  229. Connection con = getConnection();
  230. PreparedStatement ps = con.prepareStatement("SELECT * FROM sportvenuebookings WHERE sportvenuenumber = ? AND dagsetning IS NOT NULL");
  231. ps.setInt(1, sport.getId());
  232. ResultSet rs = ps.executeQuery();
  233. List<String> unavalible = new ArrayList<String>();
  234.  
  235. while (rs.next()) {
  236. String temp = rs.getString("dagsetning");
  237. unavalible.add(temp);
  238. }
  239. return unavalible;
  240. } catch (Exception e) {
  241. e.printStackTrace();
  242. }
  243. return null;
  244. }
  245. }
Add Comment
Please, Sign In to add comment