Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не отображаются данные из БД на сайте / 25 сообщений из 304, страница 1 из 13
05.11.2021, 02:06
    #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
05.11.2021, 07:31
    #40109338
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отображаются данные из БД на сайте
Уберите кавычки в имени таблицы. SQL это не C/C++ - идентификаторы объектов БД приводятся к верхнему регистру, если не принять специальных усилий.
В запросе вы эти усилия (зачем-то) предприняли, а вот при создании объектов схемы в БД - совершенно не факт.
Ещё у вас есть чистая ошибка синтаксиса - отсутствует (значимый) пробел.

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

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

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

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


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

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

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


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

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



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

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




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

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

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



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




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

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

не надо

надо ибо если не будет элемента rs.next выкинет исключение- такие вещи нужно знать Вадя
...
Рейтинг: 0 / 0
05.11.2021, 11:05
    #40109364
plktre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отображаются данные из БД на сайте
localhost8080, вывод товара(код, который я уже прикрепляла) это как раз index
...
Рейтинг: 0 / 0
05.11.2021, 11:06
    #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
05.11.2021, 11:23
    #40109366
localhost8080
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отображаются данные из БД на сайте
вадя,

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

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

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

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


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