Ocena projektu sklep online

Ocena projektu sklep online

Wątek przeniesiony 2023-07-05 12:08 z Java przez Riddle.

LukaszCh233
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 180
1

Hej, może ktoś mógłby zrobić przegląd kodu i ocenić moją pracę, dać wskazówki i co mogę poprawić. Projekt działa, wszystko wygląda poprawnie, w shouldAddProductToBasketTest() jest NoSuchElementException ale test i tak działa. Nie użyłem springa, ponieważ chciałem się obejść bez niego i dopiero teraz będę się go uczyć. Przyjmę wszystkie rady i będę wdzięczny.

Tutaj mój git: https://github.com/LukaszCh233/Store_Online

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5676
0
Kopiuj
    private boolean categoryExists(int id_category) {
        Collection<Category> categories = commonRepository.loadCategoriesFromDatabase();
        for (Category category : categories) {
            if (category.getId_category() == id_category) {
                return true;
            }
        }
        return false;
    }

Pierwsza myśl -> szkoda że nie używasz streamów
Druga myśl -> yyyyyy ... czy ty tutaj ładujesz całą tabelę do pamięci tylko po to żeby sprawdzić że rekord istnieje?

Kopiuj
    public Collection<Customer> loadCustomersFromDatabase() {
        Collection<Customer> customers = new ArrayList<>();
        String sql = "SELECT * FROM Customers c JOIN Customers_password cp ON c.id_customer = cp.customer_id";
        try (Statement statement = database.getConnection().createStatement()) {
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                customers.add(mapResultSetToCustomer(resultSet));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return customers;
    }

Dalej nie sprawdzam. Przerób to tak żeby baza szukałą zamiast ciebie. Słowo kluczowe w SQLu to WHERE

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5676
1

Nie bardzo rozumiem, czyli po prostu przerobić categoryExists tak żeby było zapytanie w sql?

Nie możesz pobierać całej tabeli przy każdym zapytaniu, bo jak będziesz miał tam milion rekordów to aplikacja umrze na pierwszym użytkowniku.
Słyszałeś o SELECT (...) FROM (...) WHERE ?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
0
LukaszCh233
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 180
0

Poprawiłem trochę co mi powiedzieliście i czekam na dalsze komentarze :)

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
0

Testy nadal są bardzo słabe.

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.