/homeBanking

Progetto di prova ripilogativo

Primary LanguageJava

Progetto di prova in java per un applicazione che simuli il comportamento (dummy) di un home banking. Teconologie, linguaggi e tools utilizzati:

  • MySQL
  • JAVA
  • Servizi REST
  • JPA + Hibernate
  • EJB
  • DataSource
  • Deploy su WildFly 24+

Nello schema dedicato bisogna creare un trigger che gestisca il movimento dei soldi tra i vari conti e effettui le ricariche sul conto, ecco lo script:

DELIMITER $$

CREATE TRIGGER checkop BEFORE INSERT ON operazioni
FOR EACH ROW
BEGIN
    DECLARE new_saldo_residuo DOUBLE;
    IF NEW.emittente != NEW.ricevente THEN
        SELECT saldo_residuo INTO new_saldo_residuo FROM conto WHERE id_conto = NEW.emittente;
        IF new_saldo_residuo - NEW.ammonto < 0 THEN
            SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'fondi insufficienti per effettuare l`operazione';
        ELSE
            UPDATE conto
            SET saldo_residuo = saldo_residuo + NEW.ammonto
            WHERE id_conto = NEW.ricevente;

            UPDATE conto
            SET saldo_residuo = saldo_residuo - NEW.ammonto
            WHERE id_conto = NEW.emittente;
        END IF;
    ELSE
        IF NEW.emittente = NEW.ricevente THEN
            UPDATE conto
            SET saldo_residuo = saldo_residuo + NEW.ammonto
            WHERE id_conto = NEW.ricevente;
        END IF;
    END IF;
END$$

DELIMITER ;