Advertisement
Guest User

Untitled

a guest
Mar 1st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.96 KB | None | 0 0
  1.  
  2. package persistencia;
  3.  
  4. import java.sql.*;
  5. import model.ParcAtraccions;
  6. import principal.ParcAtraccionsExcepcio;
  7.  
  8. //Heu d'implementar el que es requereix a cada mètode / propietat
  9. public class GestorJDBC implements ProveedorPersistencia {
  10.  
  11. /*
  12. Connexió a la base de dades
  13. */
  14. String baseDades; //Nom base de dades
  15. String urlBaseDades; //url base de dades
  16. String usuari; //Usuari per connectar-se a la base de dades
  17. String contrasenya; //contrasenya per connectar-se a la base de dades
  18. ResultSet resultat;
  19. private Connection conn;
  20.  
  21. /*
  22. PreparedStatement necessaris
  23. */
  24.  
  25. /*
  26. Obtenir els registres d'un parc d'atraccions
  27. */
  28. private static String selectParcAtraccionsSQL = "select * from parcAtraccions";
  29. //Heu de crer la sentència sql select de la taula parcAtraccions
  30. //Camps: tots
  31. //Registres: tots els del codi de parc d'atraccions passat per paràmetre
  32.  
  33.  
  34. private PreparedStatement selectParcAtraccionsSQLSt;
  35. //------------------------------------------------------------------------------
  36. /*
  37. * Insertar un parc d'atraccions
  38. */
  39. private static String insertParcAtraccionsSQL = "insert into parcAtraccions(codi,nom,adreca) values(?,?,?)";
  40. //Heu de crear la sentència sql que insereixi un registre en la taula
  41. //parc d'atraccions. Els valors dels camps seran els passat per paràmetre
  42.  
  43. private PreparedStatement insertParcAtraccionsSQLSt;
  44. //------------------------------------------------------------------------------
  45. /*
  46. * Modificar el nom i adreça d'un parc d'atraccions
  47. */
  48. private static String updateParcAtraccionsSQL = "update parcAtraccions set nom=?,adreca=? where codi=?";
  49. //Heu de crear la sentència per actualitzar un registre del parc d'atraccions
  50. //Registre a actualitzar: el que correspongui al codi passat per paràmetre
  51. //Camps a actualitzar: nom i adreça amb els valors passats per a paràmetre
  52.  
  53. private PreparedStatement updateParcAtraccionsSQLSt;
  54. //------------------------------------------------------------------------------
  55. /*
  56. * Taula coordinador
  57. */
  58. /*
  59. * Eliminar els coordinadors d'un parc d'atraccions
  60. */
  61. private static String deleteCoordinadorSQL = "delete * from coordinadors where codiParcAtraccions = ?";
  62. //Heu de crear la sentència per eliminar tots el coordinador d'un parc
  63. //d'atraccions determinat.
  64. //Registres a eliminar: Tots els registres amb el codi de parc d'atraccions
  65. //igual al passat per paràmetre.
  66.  
  67. private PreparedStatement deleteCoordinadorSQLSt;
  68. //------------------------------------------------------------------------------
  69. /*
  70. * Insertar un coordinador
  71. */
  72. private static String insertCoordinadorSQL = "insert into coordinadors(nif,nom,cognom,codiParcAtraccions) values(?,?,?,?)";
  73. //Heu de crear la sentència sql que insereixi un registre en la taula
  74. //coordinadors. Els valors dels camps seran els passat per paràmetre
  75.  
  76. private PreparedStatement insertCoordinadorSQLSt;
  77. //------------------------------------------------------------------------------
  78. /*
  79. *Seleccionar els coordinadors d'un parc d'atraccions
  80. */
  81. private static String selectCoordinadorsSQL = "select * from coordinadors";
  82. //Heu de crer la sentència sql select de la taula coordinadors
  83. //Camps: tots
  84. //Registres: tots els del codi de parc d'atraccions passat per paràmetre
  85.  
  86. private PreparedStatement selectCoordinadorsSQLSt;
  87. //------------------------------------------------------------------------------
  88. /**
  89. * Estableix la connexió amb la base de dades. Crea les sentències
  90. * preparades.
  91. *
  92. * SQLException si es produeix una excepció a l'establir la connexió (en
  93. * aquest cas, assignareu el valor null a la connexió).
  94. */
  95. public void estableixConnexio() throws SQLException {
  96. //Heu d'establir la connexio JDBC amb la base de dades GestorParcAtraccions
  97. //Heu de crear els objectes PrepareStatement declarats com a atributs d'aquesta classe
  98. //amb les respectives sentències sql declarades com a propietats just sobre cadascun d'ells.
  99. //Heu de fer el catch de les possibles excepcions SQL mostrant el missatge
  100. //de l'excepció capturada mitjançant getMessage().
  101. baseDades = "GestorParcAtraccions";
  102. urlBaseDades = "jdbc:mysql://localhost:3306/"+baseDades;
  103. usuari = "root";
  104. contrasenya =null; //No existeix contrasenya.
  105. resultat=null; //De moment no hi ha cap resultat
  106. try{
  107. Class.forName("com.mysql.jdbc.Driver");
  108. //Connectem amb la base de dades
  109. conn = DriverManager.getConnection(urlBaseDades,usuari,contrasenya);
  110.  
  111. //Preparem les consultes a la BDD. Cada interrogant representa un valor.
  112. selectParcAtraccionsSQLSt=conn.prepareStatement(selectParcAtraccionsSQL);
  113. insertParcAtraccionsSQLSt=conn.prepareStatement(insertParcAtraccionsSQL);
  114. updateParcAtraccionsSQLSt=conn.prepareStatement(updateParcAtraccionsSQL);
  115. deleteCoordinadorSQLSt=conn.prepareStatement(deleteCoordinadorSQL);
  116. insertCoordinadorSQLSt=conn.prepareStatement(insertCoordinadorSQL);
  117. selectCoordinadorsSQLSt=conn.prepareStatement(selectCoordinadorsSQL);
  118.  
  119.  
  120.  
  121. }catch (ClassNotFoundException e1){
  122. //Error si no es pot llegir el controlador
  123. System.out.println("ERROR: no s'ha trobat el controlador de la BD: "+e1.getMessage());
  124. }catch (SQLException e2) {
  125. //Error SQL: de usuari o contrasenya
  126. System.out.println("ERROR: SQL ha fallat: "+e2.getMessage());
  127. }
  128. }
  129.  
  130.  
  131. /**
  132. * Tanca la connexió i li assigna el valor null.
  133. *
  134. */
  135. public void tancaConnexio() throws SQLException {
  136. //Heu de tancar la connexió i assignar-li el valor null, es produeixi o no una excepció.
  137. if (conn!=null){ //Si existeix la connexió....
  138. conn.close(); //Tanquem la connexió
  139. }
  140. }
  141.  
  142. @Override
  143. public void desarParcAtraccions(String nomFitxer, ParcAtraccions parcAtraccions) throws ParcAtraccionsExcepcio {
  144. //Heu de desar el parc d'atraccions passat com a paràmetre en la base de dades:
  145. //S'ha de desar en la taula parcAtraccions (nomFitxer és el codi del parc d'atraccions)
  146. //Cada coordinador del parc d'atraccions, s'ha de desar com registre de la taula coordinador
  147. //Heu de tenir en compte que si el parc d'atraccions ja existeix a la base de dades,
  148. //aleshores heu de fer el següent:
  149. //- actualitzar el parc d'atraccions ja existent
  150. //- eliminar tots els coordinadors d'aquest parc d'atraccions de la taula coordinadors
  151. // i després insertar els nous coordinadors.
  152. //Si al fer qualsevol operació es dona una excepció, llavors heu de llançar l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.desar"
  153. }
  154.  
  155. @Override
  156. public ParcAtraccions carregarParcAtraccions(String nomFitxer) throws ParcAtraccionsExcepcio {
  157. //Heu de carregar el parc d'atraccions des de la base de dades (nomFitxer és el codi del parc d'atraccions)
  158. //Per fer això, heu de cercar el registre parc d'atraccions de la taula
  159. //parcsAtraccions amb codi = nomFitxer
  160. //A més, heu d'afegir els coordinadors al vector d'elements del parc d'atraccions a
  161. //partir de la taula coordinadors.
  162. //Si al fer qualsevol operació es dona una excepció, llavors heu de llançar
  163. //l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.carrega"
  164. //Si el nomFitxer donat no existeix a la taula parcAtraccions (és a dir, el codi = nomFitxer no existeix),
  165. //aleshores heu de llançar l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.noexist"
  166.  
  167. return null;
  168. }
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement