Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package persistencia;
- import java.sql.*;
- import model.ParcAtraccions;
- import principal.ParcAtraccionsExcepcio;
- //Heu d'implementar el que es requereix a cada mètode / propietat
- public class GestorJDBC implements ProveedorPersistencia {
- /*
- Connexió a la base de dades
- */
- String baseDades; //Nom base de dades
- String urlBaseDades; //url base de dades
- String usuari; //Usuari per connectar-se a la base de dades
- String contrasenya; //contrasenya per connectar-se a la base de dades
- ResultSet resultat;
- private Connection conn;
- /*
- PreparedStatement necessaris
- */
- /*
- Obtenir els registres d'un parc d'atraccions
- */
- private static String selectParcAtraccionsSQL = "select * from parcAtraccions";
- //Heu de crer la sentència sql select de la taula parcAtraccions
- //Camps: tots
- //Registres: tots els del codi de parc d'atraccions passat per paràmetre
- private PreparedStatement selectParcAtraccionsSQLSt;
- //------------------------------------------------------------------------------
- /*
- * Insertar un parc d'atraccions
- */
- private static String insertParcAtraccionsSQL = "insert into parcAtraccions(codi,nom,adreca) values(?,?,?)";
- //Heu de crear la sentència sql que insereixi un registre en la taula
- //parc d'atraccions. Els valors dels camps seran els passat per paràmetre
- private PreparedStatement insertParcAtraccionsSQLSt;
- //------------------------------------------------------------------------------
- /*
- * Modificar el nom i adreça d'un parc d'atraccions
- */
- private static String updateParcAtraccionsSQL = "update parcAtraccions set nom=?,adreca=? where codi=?";
- //Heu de crear la sentència per actualitzar un registre del parc d'atraccions
- //Registre a actualitzar: el que correspongui al codi passat per paràmetre
- //Camps a actualitzar: nom i adreça amb els valors passats per a paràmetre
- private PreparedStatement updateParcAtraccionsSQLSt;
- //------------------------------------------------------------------------------
- /*
- * Taula coordinador
- */
- /*
- * Eliminar els coordinadors d'un parc d'atraccions
- */
- private static String deleteCoordinadorSQL = "delete * from coordinadors where codiParcAtraccions = ?";
- //Heu de crear la sentència per eliminar tots el coordinador d'un parc
- //d'atraccions determinat.
- //Registres a eliminar: Tots els registres amb el codi de parc d'atraccions
- //igual al passat per paràmetre.
- private PreparedStatement deleteCoordinadorSQLSt;
- //------------------------------------------------------------------------------
- /*
- * Insertar un coordinador
- */
- private static String insertCoordinadorSQL = "insert into coordinadors(nif,nom,cognom,codiParcAtraccions) values(?,?,?,?)";
- //Heu de crear la sentència sql que insereixi un registre en la taula
- //coordinadors. Els valors dels camps seran els passat per paràmetre
- private PreparedStatement insertCoordinadorSQLSt;
- //------------------------------------------------------------------------------
- /*
- *Seleccionar els coordinadors d'un parc d'atraccions
- */
- private static String selectCoordinadorsSQL = "select * from coordinadors";
- //Heu de crer la sentència sql select de la taula coordinadors
- //Camps: tots
- //Registres: tots els del codi de parc d'atraccions passat per paràmetre
- private PreparedStatement selectCoordinadorsSQLSt;
- //------------------------------------------------------------------------------
- /**
- * Estableix la connexió amb la base de dades. Crea les sentències
- * preparades.
- *
- * SQLException si es produeix una excepció a l'establir la connexió (en
- * aquest cas, assignareu el valor null a la connexió).
- */
- public void estableixConnexio() throws SQLException {
- //Heu d'establir la connexio JDBC amb la base de dades GestorParcAtraccions
- //Heu de crear els objectes PrepareStatement declarats com a atributs d'aquesta classe
- //amb les respectives sentències sql declarades com a propietats just sobre cadascun d'ells.
- //Heu de fer el catch de les possibles excepcions SQL mostrant el missatge
- //de l'excepció capturada mitjançant getMessage().
- baseDades = "GestorParcAtraccions";
- urlBaseDades = "jdbc:mysql://localhost:3306/"+baseDades;
- usuari = "root";
- contrasenya =null; //No existeix contrasenya.
- resultat=null; //De moment no hi ha cap resultat
- try{
- Class.forName("com.mysql.jdbc.Driver");
- //Connectem amb la base de dades
- conn = DriverManager.getConnection(urlBaseDades,usuari,contrasenya);
- //Preparem les consultes a la BDD. Cada interrogant representa un valor.
- selectParcAtraccionsSQLSt=conn.prepareStatement(selectParcAtraccionsSQL);
- insertParcAtraccionsSQLSt=conn.prepareStatement(insertParcAtraccionsSQL);
- updateParcAtraccionsSQLSt=conn.prepareStatement(updateParcAtraccionsSQL);
- deleteCoordinadorSQLSt=conn.prepareStatement(deleteCoordinadorSQL);
- insertCoordinadorSQLSt=conn.prepareStatement(insertCoordinadorSQL);
- selectCoordinadorsSQLSt=conn.prepareStatement(selectCoordinadorsSQL);
- }catch (ClassNotFoundException e1){
- //Error si no es pot llegir el controlador
- System.out.println("ERROR: no s'ha trobat el controlador de la BD: "+e1.getMessage());
- }catch (SQLException e2) {
- //Error SQL: de usuari o contrasenya
- System.out.println("ERROR: SQL ha fallat: "+e2.getMessage());
- }
- }
- /**
- * Tanca la connexió i li assigna el valor null.
- *
- */
- public void tancaConnexio() throws SQLException {
- //Heu de tancar la connexió i assignar-li el valor null, es produeixi o no una excepció.
- if (conn!=null){ //Si existeix la connexió....
- conn.close(); //Tanquem la connexió
- }
- }
- @Override
- public void desarParcAtraccions(String nomFitxer, ParcAtraccions parcAtraccions) throws ParcAtraccionsExcepcio {
- //Heu de desar el parc d'atraccions passat com a paràmetre en la base de dades:
- //S'ha de desar en la taula parcAtraccions (nomFitxer és el codi del parc d'atraccions)
- //Cada coordinador del parc d'atraccions, s'ha de desar com registre de la taula coordinador
- //Heu de tenir en compte que si el parc d'atraccions ja existeix a la base de dades,
- //aleshores heu de fer el següent:
- //- actualitzar el parc d'atraccions ja existent
- //- eliminar tots els coordinadors d'aquest parc d'atraccions de la taula coordinadors
- // i després insertar els nous coordinadors.
- //Si al fer qualsevol operació es dona una excepció, llavors heu de llançar l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.desar"
- }
- @Override
- public ParcAtraccions carregarParcAtraccions(String nomFitxer) throws ParcAtraccionsExcepcio {
- //Heu de carregar el parc d'atraccions des de la base de dades (nomFitxer és el codi del parc d'atraccions)
- //Per fer això, heu de cercar el registre parc d'atraccions de la taula
- //parcsAtraccions amb codi = nomFitxer
- //A més, heu d'afegir els coordinadors al vector d'elements del parc d'atraccions a
- //partir de la taula coordinadors.
- //Si al fer qualsevol operació es dona una excepció, llavors heu de llançar
- //l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.carrega"
- //Si el nomFitxer donat no existeix a la taula parcAtraccions (és a dir, el codi = nomFitxer no existeix),
- //aleshores heu de llançar l'excepció ParcAtraccionsExcepció amb codi "GestorJDBC.noexist"
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement