FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

java-labs/java-web-ru/jdbc at main · vmorkhat/java-labs · GitHub

Latest commit

 

History

History

README.md

JDBC

В этом домашнем задании вам предстоит реализовать два обработчика — вывод списка всех статей с пейджингом (пейджинг - это постраничный вывод) и просмотр данных конкретной статьи. Отличие от предыдущих заданий в том, что мы работаем с базой данных. Для работы с базой данных будем использовать JDBC. JDBC (Java DataBase Connectivity) — это стандартный интерфейс, предназначенный для взаимодействия Java-приложения с различными базами данных.

Ссылки

src/main/java/exercise/App.java

Задачи

  • Создайте соединение с базой данных H2. Соединение с базой данных происходит при помощи драйвера и описывается интерфейсом Connection. Для этого вам понадобится указать путь к файлу, в котором будет находится база данных. Выберите название по своему усмотрению.

    // Создаёт базу данных hexlet и размещает файл в текущей директории
    Connection connection = DriverManager.getConnection("jdbc:h2:./hexlet");

    Соединение должно находится с переменной с именем connection, так как дальше оно передаётся в метод getApp() при создании приложения.

  • Выполните запросы, которые находятся в файле init.sql. Эти запросы создадут в базе данных таблицу и заполнят её данными. Чтобы получить содержимое файла, воспользуйтесь методом getFileContent(). Этот метод уже создан в классе.

src/main/java/exercise/servlet/ArticlesServlet.java

Типичные таблицы в веб-проектах содержат огромное количество данных, поэтому их никогда не показывают на страницах сразу все. Обычно выводится лишь небольшая часть — например, 10 строк. Пользователь, просмотрев первые 10 записей, может захочет посмотреть следующие 10. Для этого используется пейджинг — специальный механизм, который позволяет перемещаться по страницам.

Задачи

  • Допишите обработчик showArticles(), который выводит список всех статей. Статьи находятся в базе данных. Каждая статья содержит 3 поля — id, title и body. Соединение с базой данных находится в переменной connection. Список статей должен выводиться с пейджингом по 10 статей на странице. На первой странице первые десять постов, на второй вторые десять и так далее. Переключение между страницами сделайте с помощью двух ссылок: назад и вперед. То, какая сейчас страница открыта, определяется параметром page в строке запроса. По умолчанию загружается первая страница. Например, GET-запрос на адрес /articles (то же самое, что запрос на /articles?page=1) откроет первую страницу. Запрос на адрес /articles?page=3 откроет третью страницу.

src/main/webapp/WEB-INF/templates/articles/index.html

Задачи

  • В шаблоне организуйте вывод ссылок "Prev" и "Next" для переключения между страницами списка. Если хотите сделать ссылки красивыми, используйте классы Bootstrap.
<nav>
  <ul class="pagination justify-content-center">
    <li class="page-item">
      <a class="page-link" href="#">Prev</a>
    </li>
    <li class="page-item">
      <a class="page-link" href="#">Next</a>
    </li>
  </ul>
</nav>

src/main/webapp/WEB-INF/templates/articles/show.html

Задачи

Организуйте в шаблоне вывод информации о конкретной статье. Выводиться должно название и содержание статьи.

Подсказки

  • В этом и следующих домашних заданиях используется встроенная база данных H2. В упражнении она работает "из коробки". Устанавливать базу данных у себя локально не требуется
  • При реализации пейджинга для составления запроса используйте LIMIT и смещение OFFSET
  • Для того, чтобы реализовать ссылки "Вперед" и "Назад" для переключения между страницами списка, вам потребуется передать в шаблон, помимо списка статей, еще номер текущей страницы

Back | FazBrowse Home | New Git URL