powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не отображаются данные из БД на сайте
25 сообщений из 304, страница 1 из 13
Не отображаются данные из БД на сайте
    #40109331
plktre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять причину почему не отображаются данные из БД

Класс товаров:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
public class Product {

    private String title;
    private String description;
    private Integer price;
    private String image;
    private Integer id;
    private String category;

    private String HOST = "jdbc:postgresql://localhost:5432/online_shop";
    private String userName = "postgres";
    private String password = "12345";
    private Connection connection;

    public Product() {
        title = "";
        description = "";
        price = 0;
        image = "";
        id = 0;
        category = "";
    }

    public Product(final Integer id, final String title, final String description, final Integer price, final String category, final String image) {
        this.title = title;
        this.description = description;
        this.price = price;
        this.image = image;
        this.id = id;
        this.category = category;
    }

    public String getImage() {
        return this.image;
    }

    public void setImage(final String image) {
        this.image = image;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(final String title) {
        this.title = title;
    }

    public String getDescription() {
        return this.description;
    }

    public void setDescription(final String description) {
        this.description = description;
    }

    public Integer getPrice() {
        return this.price;
    }

    public void setPrice(final Integer price) {
        this.price = price;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(final Integer id) {
        this.id = id;
    }

    public String getCategory() {return this.category;}

    public void setCategory(final String category) {this.category = category;}

    public ArrayList<Product> getProduct() {
        ArrayList<Product> products = new ArrayList<>();
        try{
            connection = DriverManager.getConnection(HOST, userName, password);
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT *FROM public.\"Product\"");
            while (rs.next()) {
                int id = rs.getInt("id_prod");
                String title = rs.getString("title");
                String description = rs.getString("description");
                int price = rs.getInt("price");
                String category = rs.getString("category");
                String img = rs.getString("img");
                Product prod = new Product(id, title, description, price, category, img);
                products.add(prod);
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return products;
    }



Контроллер:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Controller
public class Home {
    @RequestMapping("/")
    public String homeWithSession(Model model, HttpSession session) {
        Product product = new Product();
        String sid = session.getId();
        model.addAttribute("sid", sid);
        ArrayList<Product> products = product.getProduct();
        model.addAttribute("products", products);
        return "index"; }}



Сама страничка:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<section class="main-content">
    <div class="container">
        <div class="row">
            <div class="col-lg-3 col-sm-6 mb-3" th:each="product : ${products}">
                <div class="card" style="width: 18rem;">
                    <img class="card-img-top" th:src="${product.image}" alt="Card image cap">
                    <div class="card-body">
                        <h5 class="card-title" th:text="${product.title}"></h5>
                        <p class="card-text" th:text="${product.description}"></p>
                        <div class="price">
                            <p th:text="${product.price}"></p>
                            <p>руб.</p>
                        </div>
                        <button class="btn btn-dark cart" th:data-id="${product.id}">В корзину</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109338
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уберите кавычки в имени таблицы. SQL это не C/C++ - идентификаторы объектов БД приводятся к верхнему регистру, если не принять специальных усилий.
В запросе вы эти усилия (зачем-то) предприняли, а вот при создании объектов схемы в БД - совершенно не факт.
Ещё у вас есть чистая ошибка синтаксиса - отсутствует (значимый) пробел.

P.S.
А ещё может быть, что схема у вас совсем не public или/и что её вообще не надо специально указывать.
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109340
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извините за мой французский , но это полна х-я
одно радует - без хибера...
вот скажите на кой ляд здесь Product? зачем тратить время на его заполнение?
зачем здесь ArrayList<Product> products = new ArrayList<>();? зачем тратить время на его заполнение?
причём в цикле?
потом из этого всего извлекаем для построения строки html? (точнее не совсем строки , а отправки строки ....)
всё решается простым сриплетом прямо из результсета....

ну и сама страница - это нечто.
при нынешних гридах, флехбоксах, да уже и простые таблицы будут лучше
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109346
plktre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, подскажите о каком пробеле идет речь, точнее о месте, где он пропущен
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109348
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

кавычки погода не делают

plktre, после звёздочки
Код: java
1.
ResultSet rs = statement.executeQuery("SELECT * FROM public.\"Product\"");


результсет что-то возвращает?

что отображается на странице в браузере?
отладка в браузере что показывает?
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109351
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
Basil A. Sidorov,

кавычки погода не делают


в java делают
может быть две таблицы "Product" и Product
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109352
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
в java делают
может быть две таблицы "Product" и Product
тогда бы были ошибки...
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109353
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
localhost8080
в java делают
может быть две таблицы "Product" и Product
тогда бы были ошибки...

собствено и при таком синтаксисе *From однозначно будет ошибка ,но автор про нее умолчал - может у него экспшен хендлер кушает эти ошибки и не делает ничего после этого
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109354
plktre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя, на странице браузера и в консоли все пусто
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109355
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
собствено и при таком синтаксисе *From однозначно будет ошибка ,но автор про нее умолчал - может у него экспшен хендлер кушает эти ошибки и не делает ничего после этого
ну для этого существует пошаговый дебаг. а это первый класс по программированию
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109356
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
while (rs.next()) 



вот тут ошибка тоже

надо
Код: java
1.
while(rs.hasnext){
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109358
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
plktre
на странице браузера и в консоли все пусто
пошаговая отладка о чем-то говорит?
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109359
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
собственно этот код при запуске бы тут в лог накакал ошибок- исходя из этого кажется что вообще запрос не приходит на контроллер
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109360
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
Код: java
1.
while (rs.next()) 




вот тут ошибка тоже

надо
Код: java
1.
while(rs.hasnext){

не надо
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109361
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще может быть вот тут
Код: java
1.
return "index"; }}



ты редиректишь на индекс,при этом где у тебя прописан код этого индекса
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109363
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
localhost8080
Код: java
1.
while (rs.next()) 




вот тут ошибка тоже

надо
Код: java
1.
while(rs.hasnext){

не надо

надо ибо если не будет элемента rs.next выкинет исключение- такие вещи нужно знать Вадя
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109364
plktre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
localhost8080, вывод товара(код, который я уже прикрепляла) это как раз index
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109365
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
надо ибо если не будет элемента rs.next выкинет исключение- такие вещи нужно знать Вадя
не учи отца....
никаких исключений - читай мануалы
или гугли
https://www.sql.ru/forum/834157/chaynikovskiy-vopros-jdbc
https://www.cyberforum.ru/java-gui/thread1367376.html


https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109366
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

фейспалм)))
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109370
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты.

- Таблица Products реально пустая.
- Таблица Products реально лежит в другой схеме
- Странный синтаксис порождает exception но его никто не читает.
- Ошибка при рендеринге UI и ее тоже никто не видит хотя данные есть.
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109372
plktre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо! Проблема решилась
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109379
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох егоза... В следующий раз кидай линк на github сразу.
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109428
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак всё-таки какая необходимость гонять по памяти кучу раз одни и те же данные?
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109470
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего кучу раз. Там вроде 1 раз.
...
Рейтинг: 0 / 0
Не отображаются данные из БД на сайте
    #40109475
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А чего кучу раз. Там вроде 1 раз.
2 раза

1) Product prod = new Product(id, title, description, price, category, img);

2) products.add(prod);
...
Рейтинг: 0 / 0
25 сообщений из 304, страница 1 из 13
Форумы / Java [игнор отключен] [закрыт для гостей] / Не отображаются данные из БД на сайте
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]