Введение
- В этой статье мы создадим простой дизайн приема данных, который будет использовать simple Java SDK
- Мы будем считывать данные из удаленных источников и записывать в базу данных.
Пример использования
- Наши варианты использования - прием новостных статей из источников RSS.
- Мы создадим RSS-клиент, который будет принимать данные, а затем записывать их в СУБД
Источник
- Как я уже упоминал, нашим источником является RSS-канал. Мы будем принимать новостные статьи из блогов Google Cloud Tech.
- Если вы хотите ознакомиться с подробным блогом о создании RSS-клиентов, пожалуйста ознакомьтесь с этой статьей.
- В рамках этого блога мы будем использовать зависимость под названием Rome, которая поможет нам подключиться к RSS-каналу.
- Ниже приведена полная логика, которая принимает данные из облачного блога Google и сопоставляет их с новостной статьей POJO
Новостная статья POJO
- NewsArticle в основном состоит из свойств, которые мы ожидаем получить из новостных статей RSS.
RSS Mapper
- Этот класс отвечает за сопоставление данных RSS-канала с новостной статьей POJO.
- В этой статье требуется настройка MySQL или аналогичной СУБД в качестве приемника, предварительно требуется настроить эту базу данных
- Как только у нас есть работающая база данных, мы можем создать таблицу с именем NEWS_ARTICLE в любой схеме, присутствующей в базе данных.
- Если вы ленивы, как я, вы можете просто скопировать приведенный ниже код, чтобы быстро начать работу
Подключение к базе данных
- Как только таблица будет готова, мы можем сосредоточиться на логике Java для подключения к базе данных.
- Нам понадобится драйвер JDBC для подключения к базе данных, обязательно добавьте зависимость в POM.xml
- Теперь, когда у нас есть драйвер, мы можем приступить к кодированию нашего клиента.
Мы используем класс DriverManager для получения объекта connection. Нам нужно передать строку URL-адреса JDBC вместе с пользователем и паролем. - Примечание: я ввел значение конфигурации в код, но в реальном сценарии мы никогда не должны этого делать. Я считаю, что чтение из файла конфигурации во время выполнения или KMS / Vault является рекомендуемым подходом.
Вставка данных в базу данных
- Как только мы подключимся к базе данных, мы напишем логику вставки данных.
- Сначала давайте получим подготовленный объект statement, который мы будем использовать для установки наших данных и выполнения в базе данных.
- Одна вещь, в которой нужно убедиться, это то, что мы должны вставлять наши данные как пакет, поскольку вставка каждой записи не будет хорошей для производительности при большом размере данных.
- Мы устанавливаем для автоматической фиксации значение false, чтобы мы могли зафиксировать, как только все записи будут добавлены в пакет, и мы сможем выполнить пакет.
- Мы перебираем каждую новостную статью и добавляем в пакет preparedstamtent.
- и как только мы закончим добавлять каждую запись в пакет, мы можем выполнить пакетную и выполнить операцию фиксации.
- Ниже приведена логика для установки preparedstatement с данными newsarticle
Логика клиента
- Наш клиент довольно прост. Сначала он вызывает логику для получения новостной статьи из RSS-канала, а затем записывает их как пакетную вставку в нашу базу данных.
Результат
- Давайте выполним наш клиентский код, чтобы увидеть результат.
- Перед выполнением: наша таблица базы данных пуста
После выполнения
Журнал
MySQL
- Как мы видим, в нашу базу данных успешно вставлено 20 новостных статей, и выполнение нашего кода прошло успешно.
Исходный код
- Как обычно, исходный код доступен на github
Заключение
- В этой статье мы построили логику приема данных с использованием простой Java.
- Мы прочитали из RSS-канала и вставили запись в базу данных MySQL