Jak wylowac procedure w javie , hibernate , spring

Jak wylowac procedure w javie , hibernate , spring
Konrad Krawczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

CREATE PROCEDURE p_oblicz_odleglosc_v2 @idCustomer int, @idVehicle int as select @idCustomer [idCustomer], @idVehicle [idVehicle], c.location.STDistance(v.locationVehicle)/1000 [distanceInKm] from Customer c join Vehicle v on v.idVehicle = @idVehicle where c.idCustomer = @idCustomer; go
Mam taka procedure w SQL server wywolanie jest bardzo proste
exec p_oblicz_odleglosc_v2 1,2 teraz chcialbym ja wywolac w javie . Czy moglby ktos objasnic jak wywolac taka procedure lub jakis tutorial ?

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2787
1

Jak już masz Hibernate to możesz .createNativeQuery(..) na entity managerze albo jak nie masz Hibernate to po prostu gołym PreparedStatement

Konrad Krawczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

@Pinek: A dam rade zrobic tak zeby wywolac procedure w formularzu na stronie i pozniej zobaczyc resultat?
A nie masz jakiegos poradnika albo przykladu jak mniej wiecej to ma wygladac ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0
  1. Po co tu hibernate? o_O
  2. Nie widzę powodu czemu miałbyś nie móc zrobić formularza na stroni który to woła, ale mam wrazenie że w ogóle nie umiesz javy, a to może być problem...
Konrad Krawczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

@Shalom: Po prostu wszystkie operacje na bazie robie za pomoca hibernate , co do drugiego punktu to po prostu nie wiem jak sie wywoluje procedury dlatego zapytalem .

Kopiuj
@RequestMapping("/user")
    public String user(Model model, User user, BindingResult bindingResult){
        if(this.sessionObject.getUser() == null){
            return "redirect:login";
        }
        if(bindingResult.hasErrors()) {
            return "user";
       }
        User result =  userDAO.getUserByLogin(user.getUsername());
        model.addAttribute("result", result);
        return "resultUser";
    }
Kopiuj
<form action="/user"  th:object="${user}" method="post" id="login" class="input-group">
                <input type="text" class="input-field" placeholder="username" name="username" th:field="*{username}" th:errorClass="error"required>
                <span th:if="${#fields.hasErrors('username')}" th:errors="*{username}">Incorrect data</span>
                <button type="submit" class="submit-btn">Get your  profil</button>
            </form>
Kopiuj
@Override
    public User getUserByLogin(String username) {
        Session  session = this.sessionFactory.openSession();
        User user =
                (User) session.createQuery("FROM pl.edu.wszib.model.User WHERE username = :username" )
                        .setParameter("username", username)
                        .uniqueResult();
        session.close();
        System.out.println(user);
        return user;  }
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

userDAO, sessionFactory, czy mamy rok 2011 czy 2021? :D Anyway, jw. musisz tu użyć nativeQuery jeśli chcesz to robić w ten sposób.

Konrad Krawczyk
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

@Shalom: 2021 a odpowiedzi jak w 2011 xd

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.