sql >> Database >  >> RDS >> Mysql

hoe de MySQL-opgeslagen procedure aan te roepen in springboot met slaapstand?

U kunt een opgeslagen procedure aanroepen met javax.persistence.StoredProcedureQuery. U hoeft niet eens iets op uw entiteit te declareren.
Ik raad u aan de logica voor het aanroepen van de procedure te verplaatsen naar een service en vervolgens de servicemethode aan te roepen vanaf uw controller.

Bijvoorbeeld:

@Service
public class LoginServiceImpl implements LoginService {

    @PersistenceContext
    private EntityManager entityManager;

    public Boolean checkUsernameAndPassword(String username, String password) {

        //"login" this is the name of your procedure
        StoredProcedureQuery query = entityManager.createStoredProcedureQuery("login"); 

        //Declare the parameters in the same order
        query.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(3, Integer.class, ParameterMode.OUT);
        query.registerStoredProcedureParameter(4, String.class, ParameterMode.OUT);

        //Pass the parameter values
        query.setParameter(1, username);
        query.setParameter(2, password);

        //Execute query
        query.execute();

        //Get output parameters
        Integer outCode = (Integer) query.getOutputParameterValue(3);
        String outMessage = (String) query.getOutputParameterValue(4);

        return true; //enter your condition
    }
}

En dan kunt u deze methode aanroepen vanaf uw Controller, na het injecteren van uw LoginService .



  1. JDBC ResultSet intern mechanisme voor het ophalen van grote datasets

  2. 2 manieren om de minuten te halen uit een datetime-waarde in Oracle Database

  3. Alternatief voor het gebruik van het trefwoord LIMIT in een SubQuery in MYSQL

  4. Herstel MySQL root-wachtwoord