Spring MVC и JDBC (Spring JDBC example). Подключение и настройка JDBC datasource, пример работы с JDBC в Spring

Spring MVC и JDBC Hello world example. Начало работы с Java DataBase Connectivity в приложении Spring MVC.

Обзор приложения Spring MVC + AngularJS + Bootstrap + HTML5
Используемые технологии и библиотеки
  • Spring MVC 4.2.4.Release
  • HSQLDB 2.3.3
  • Spring JDBC 4.2.4
  • Maven 3.2.5
  • IntelliJ IDEA 15.0.2

1. Описание задачи

Подключить и настроить работу с Java DataBase Connectivity (JDBC) в Spring MVC. Посмотреть как используется и конфигурируется dataSource в файле настроек Spring. Создать тестовую HSQLDB (in memory) базу данных, добавить данные и получить к ним доступ с помощью веб приложения.

2. Структура проекта

jdbc-projectStructure

Были добавлены два класса для работы с данными (JDBCController, JDBCExample). В представлениях появился файл jdbc/jdbc.jsp на которой будут отображаться результаты обращения к базе данных. В качестве модели созданы классы DBLog и User, которые соответствуют данным из пакета resources. В нем вы можете увидеть sql файл с описанием таблиц, которые будут созданы на старте приложения и тестовые данные test-data.sql. Настройки подключения и базы данных вынесены в файл utils.properties. Отдельно был добавлен один тестовый класс (JDBCExampleTest) в пакете test.

3. Зависимости в pom.xml

Относительно предыдущего этапа (загрузка файлов и создание PDF, Excel документов) здесь были добавлены следующие зависимости:

Из обязательных — spring-jdbc и hsqldb. Логирование и тестирование в прямую не относится к началу работы с JDBC в Spring MVC, но будет здесь и далее использоваться в проекте.

Полный файл pom.xml:

4. Настройка конфигурации Spring MVC

Для начала работы с JDBC нам необходимо прописать в конфигурационном файле Spring бин для работы с базой данных и источник этих данных. Эти настройки были добавлены в application-context.xml:

property-placeholder указывает где нужно искать файл со свойствами (будет приведен чуть ниже). Эти свойства используются в описании бина id=dataSource. В свойствах указываются стандартные настройки вроде логина, драйвера для работы с БД и путь к ней. Ниже прописан путь к самим данным (dbschema.sql — скрипты создания БД, test-data.sql — сами данные).

util.properties:

dbschema.sql:

test-data.sql:

mvc-config.xml (для примера по JDBC ничего полезного, нужен для работы приложения целиком):

5. web.xml

Для этого примера также ничего нового и полезного.

6. Java классы для работы с JDBC в Spring MVC

Контроллер обрабатывает запросы с jsp страницы нашего приложения. JDBCController:

Как видите в нем происходит автосвязывание с классом-репозиторием JDBCExample. Он служит для непосредственного обращения к данным в базе:

Здесь нужно обратить внимание на начало класса и использование JdbcTemplate, в конструктор которому передается dataSource, который мы указали в файле конфигурации. С помощью jdbcTemplate можно выполнять CRUD (вставка, обновление, удаление) операции.

Классы User и DBLog — сущности для тестовых данных из test-data.sql. Достаточно тривиальны.

User:

DBLog (аннотация XMLElement здесь не нужна и осталась из полного проекта. Будет использоваться в статьях по XML, JSON):

7. JSP страница

Создана, использующая шаблон (пояснение в статье по загрузке файлов и создания pdf документов), страница.

jdbc.jsp:

В меню слева прописаны ссылки, по которым будет срабатывать JDBCController. Справа получим результаты:

jdbc-results

 

Исходные коды

MVC_AngularJS_Html5 full project — полный проект Spring MVC + AngularJS + Bootstrap + HTML5.

3. MVC Jdbc example — код для этой статьи (внутри sql скрипты).

Обзор приложения Spring MVC + AngularJS + Bootstrap + HTML5

 

Share Button
16
15330 Total Views 1 Views Today

6 thoughts on “Spring MVC и JDBC (Spring JDBC example). Подключение и настройка JDBC datasource, пример работы с JDBC в Spring

  1. Сергей:

    Добрый день,

    Не работает jdbc.html

    Впрочем как и все файлы на базе tag template.

    Пустая страница открывается, без ошибок, но пустая…

    1. Проверил исходник в конце статьи. Работает как и должно. Возможно у вас что-либо не подключено.

  2. Сергей:

    Вопрос по ходу: зачем в jsp странице указывать <!DOCTYPE html>?

    1. Указывает тип текущего документа страницы. Он может быть разный и для нормальной работы желательно указывать необходимый тип для вашей страницы.

      1. Сергей:

        Смотрел в других примерах, говорилось не указывать ))

        Исходники скачал, действительно все работает…

        Набирал сам, с экрана, все индентично, по строчкам проверял — не запускается (

        Кстати, index.jsp отличается от того, что в тексте описан…

  3. Степан Пельмегов:

    Добрый день, за уроки спасибо, есть пару замечаний по коду:

    в jdbc.jsp на 62 стоке уберите лишний закрывающий тег </form>
    вместо такой записи <font color=«green»><b>${resultObject}</b></font> лучше использовать стили, хотя бы хардкодно <span style=«color: green; font-weight: bold;»>${resultObject}</span> , это отношения к джаве и вообще к теме не имеет никакого, но было бы правильнее делать именно так.

Добавить комментарий