Задать вопрос

Как вывести нужную информацию из базы данных?

Всем привет!

Есть база данных, в которой таблицы "Профиль" и "Пользователи".

Есть servlet ShowUsersController, который вытаскивает информацию о всех пользователях.

pom.xml :
https://pastebin.com/p2qyf6q3

ShowUsersController.java :
package com.romanidze.jizzyshop.controllers;

import com.romanidze.jizzyshop.dao.implementations.ProfileDAOImpl;
import com.romanidze.jizzyshop.dao.interfaces.ProfileDAOInterface;
import com.romanidze.jizzyshop.models.Profile;
import com.romanidze.jizzyshop.utils.DBConnection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@WebServlet(
        name = "ShowUsersController",
        description = "Пользователи сервиса",
        urlPatterns = {"/admin/users"}
)
public class ShowUsersController extends HttpServlet{

    private Connection conn;

    @Override
    public void init(){

        try{

            Class.forName("org.postgresql.Driver");

            DBConnection dbConnection = new DBConnection(getServletContext()
                                                            .getResourceAsStream("/WEB-INF/properties/db.properties"));

            Map<String, String> configMap = new LinkedHashMap<>();
            configMap.putAll(dbConnection.getDBConfig());

            this.conn = DriverManager.getConnection(configMap.get("db_url"), configMap.get("db_username"),
                                                    configMap.get("db_password"));

        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp){

        try {

            ProfileDAOInterface profileDAO = new ProfileDAOImpl(this.conn);

            List<Profile> profiles = profileDAO.findAll();

            req.setAttribute("profiles", profiles);

            req.getRequestDispatcher("/WEB-INF/views/show_users.jsp").forward(req, resp);

        }catch(ServletException | IOException e){

            e.printStackTrace();

        }finally{
            try {
                this.conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

}


show_users.jsp: https://pastebin.com/Yuk8pLZv

ProfileDAOImpl.java:
https://pastebin.com/cbW8jM3E

Profile.java:
package com.romanidze.jizzyshop.models;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.EqualsAndHashCode;

@Getter
@Setter
@AllArgsConstructor
@Builder
@EqualsAndHashCode
public class Profile {

    private Long id;
    private String country;
    private String gender;
    private String subscription;
    private Long userId;

    @Override
    public String toString(){

        StringBuilder sb = new StringBuilder();

        sb.append("Profile{")
          .append("id = ").append(this.getId())
          .append(", country = ").append(this.getCountry())
          .append(", gender = ").append(this.getGender())
          .append(", subscripttion = ").append(this.getSubscription())
          .append(", userID = ").append(this.getUserId());

        return sb.toString();

    }

}


Однако, JSTL - шаблоны не выводят никакой информации.
Класс DBConnection содержит в себе лишь подключение к базе, и более ничего.
Как это можно исправить?
  • Вопрос задан
  • 603 просмотра
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@Romanidze Автор вопроса
Решилось переходом на Thymeleaf
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы