- Как сохранить данные в PostgreSQL в Java
- Требования к программному обеспечению и используемые условные обозначения
- Установка
- Настройка базы данных для приложения
- Импорт драйвера PostgreSQL JDBC в проект
- Понимание исходного кода
- Запуск приложения
- Вывод
- Как создать горячий резерв с PostgreSQL
- Установите PostgreSQL на Ubuntu 18.04 Bionic Beaver
- Как продвигать пользователя Mediawiki с привилегиями сисопа и бюрократа
Как сохранить данные в PostgreSQL в Java
В настоящее время Java, пожалуй, является наиболее широко используемым языком программирования. Его надежность и независимость от платформы позволяют приложениям на основе Java работать практически на чем угодно. Как и в случае с любым
приложения, нам нужно хранить наши данные каким-то надежным способом — эта потребность вызвала к жизни базы данных.
В Java соединения с базами данных реализуются JDBC (Java Database Connectivity API), что
пусть программист обрабатывает разные типы баз данных почти одинаково, что значительно облегчит нам жизнь, когда нам нужно сохранить или прочитать данные из базы данных.
В этом руководстве мы создадим пример приложения Java, которое сможет подключаться к экземпляру базы данных PostgreSQL и записывать в него данные. Чтобы убедиться, что наша вставка данных прошла успешно,
мы также реализуем обратное чтение и распечатаем таблицу, в которую мы вставили данные.
В этом уроке вы узнаете:
- Как настроить базу данных для приложения
- Как импортировать драйвер PostgreSQL JDBC в свой проект
Результаты запуска приложения.
Требования к программному обеспечению и используемые условные обозначения
Категория | Требования, условные обозначения или используемая версия программного обеспечения |
---|---|
Система | Ubuntu 20.04 |
Программного обеспечения | IDE NetBeans 8.2, PostgreSQL 10.12, jdk 1.8 |
Другой | Привилегированный доступ к вашей системе Linux с правами root или через судо команда. |
Условные обозначения | # — требует данных команды linux для выполнения с привилегиями root либо непосредственно как пользователь root, либо с использованием судо команда $ — требует данных команды linux для выполнения от имени обычного непривилегированного пользователя. |
Установка
Для целей этого руководства нам понадобится только одна рабочая станция (настольный компьютер или ноутбук) для установки всех необходимых компонентов. Мы не будем покрывать установка JDK , IDE Netbeans или установка базы данных PostgreSQL на лабораторной машине. Мы предполагаем, что база данных называется exampledb запущен и работает, и мы можем подключаться, читать и писать, используя аутентификацию по паролю, с
следующие учетные данные:
Имя пользователя: | примерпользователь |
Пароль: | ExamplePass |
Это пример настройки, используйте надежные пароли в реальном мире! База данных настроена на прослушивание на локальном хосте, что понадобится при создании JDBC. URL подключения .
Основная цель нашего приложения — показать, как писать и читать из базы данных, поэтому для ценной информации, которую мы так стремимся сохранить, мы просто выберем случайное число от 1 до
1000, и будет хранить эту информацию с уникальным идентификатором расчета и точным временем записи данных в базу данных.
ID и время записи будут предоставлены базой данных,
что позволяет нашему приложению работать только с реальной проблемой (в данном случае предоставляя случайное число). Это сделано специально, и мы рассмотрим возможности этой архитектуры в конце этого руководства.
Настройка базы данных для приложения
У нас есть работающая служба базы данных и база данных с именем exampledb у нас есть право работать с вышеупомянутыми учетными данными. Чтобы иметь место, где мы можем хранить наши драгоценные
(случайные) данные, нам нужно создать таблицу, а также последовательность, которая будет предоставлять уникальные идентификаторы удобным способом. Рассмотрим следующий сценарий SQL:
создать последовательность resultid_seq start с 0 приращением на 1 нет maxvalue minvalue 0 cache 1; изменить владельца последовательности resultid_seq на exampleuser; создать таблицу calc_results (остаточный числовой первичный ключ по умолчанию nextval ('resultid_seq':: regclass), result_of_calculation numeric not null, record_date timestamp default now () ); изменить владельца таблицы calc_results на exampleuser;
Эти инструкции должны говорить сами за себя. Создаем последовательность, устанавливаем владельца на примерпользователь , создайте таблицу с именем calc_results (расшифровывается как «результаты расчета»),
задавать остаток для автоматического заполнения следующим значением нашей последовательности при каждой вставке, и определите result_of_calculation и Дата записи столбцы, которые будут хранить
наши данные. Наконец, владелец таблицы также настроен на примерпользователь .
Чтобы создать эти объекты базы данных, мы переключаемся на Postgres Пользователь:
И запустите скрипт (хранящийся в текстовом файле с именем table_for_java.sql ) против exampledb база данных:
На этом наша база данных готова.
Импорт драйвера PostgreSQL JDBC в проект
Для создания приложения мы будем использовать IDE NetBeans 8.2. Первые несколько шагов — это ручная работа. Выбираем меню файла, создаем новый проект. Мы оставим значения по умолчанию на следующей странице мастера с категорией
«Java» и проекта «Приложение Java». Мы нажмем дальше. Мы даем приложению имя (и, при желании, определяем местоположение не по умолчанию). В нашем случае он будет называться persistToPostgres .
Это заставит IDE создать для нас базовый Java-проект.
На панели «Проекты» щелкните правой кнопкой мыши «Библиотеки» и выберите «Добавить библиотеку…». Появится новое окно, в котором мы ищем, выбираем драйвер PostgreSQL JDBC и добавляем его как библиотеку.
Добавление драйвера PostgreSQL JDBC в проект.
Понимание исходного кода
Теперь мы добавляем следующий исходный код в основной класс нашего приложения, PersistToPostgres :
пакет persisttopostgres; импортировать java.sql. Связь; импортировать java.sql. DriverManager; импортировать java.sql. ResultSet; импортировать java.sql. SQLException; импортировать java.sql. Заявление; импортировать java.util.concurrent. ThreadLocalRandom; публичный класс PersistToPostgres catch (ClassNotFoundException cnfe) System.out.println («Драйвер PostgreSQL JDBC зарегистрирован!»); Conn = null; попробуйте catch (SQLException sqle) if (conn! = null) // очистка при выходе st.close (); conn.close (); > catch (SQLException sqle2) > else > >
- В строка 12 мы вычисляем случайное число и сохраняем его в результат Переменная. Это число представляет собой результат тяжелого расчета, который
нам нужно хранить в базе данных. - В строка 15 мы пытаемся зарегистрировать драйвер PostgreSQL JDBC. Это приведет к ошибке, если приложение не найдет драйвер во время выполнения.
- В строка 26 мы создаем строку подключения JDBC, используя имя хоста, на котором работает база данных (localhost), порт базы данных прослушивание (5432, порт по умолчанию для PostgreSQL), имя базы данных (exampledb) и учетные данные, указанные в начало.
- В строка 37 мы выполняем вставить в Оператор SQL, который вставляет значение результат переменная в result_of_calculation столбец calc_results Таблица. Мы указываем только значение этих отдельных столбцов, поэтому применяются значения по умолчанию: остаток извлекается из последовательности, которую мы
набор, и Дата записи по умолчанию сейчас же() , которое является временем базы данных на момент транзакции. - В строка 38 мы создаем запрос, который вернет все данные, содержащиеся в таблице, включая нашу вставку на предыдущем шаге.
- Из строка 39 мы представляем полученные данные, распечатывая их в виде таблицы, освобождаем ресурсы и завершаем работу.
Запуск приложения
Теперь мы можем очистить, построить и запустить persistToPostgres приложение, из самой среды IDE или из командной строки. Для запуска из IDE мы можем использовать кнопку «Запустить проект» вверху. Чтобы запустить это
из командной строки нам нужно перейти к расстояние каталог проекта и вызовите JVM с БАНКА пакет в качестве аргумента:
$ java -jar persistToPostgres.jar Результат трудного вычисления: 173. PostgreSQL JDBC Connection тестирование Установлено соединение с базой данных. Результаты, записанные в exampledb, следующие: 0 145 2020-05-31 17: 40: 30.974246
Запуск из командной строки будет обеспечивать тот же вывод, что и консоль IDE, но что более важно здесь, так это то, что каждый запуск (будь то из среды IDE или из командной строки) будет вставлять другую строку в нашу базу данных.
таблица с заданным случайным числом, вычисляемым при каждом запуске.
Вот почему мы также увидим растущее количество записей в выводе приложения: каждый запуск увеличивает таблицу на одну строку. После нескольких пробежек
мы увидим длинный список строк результатов в таблице.
Выходные данные базы данных показывают результаты каждого выполнения приложения.
Вывод
Хотя это простое приложение вряд ли имеет какое-либо практическое применение, оно идеально подходит для демонстрации некоторых действительно важных аспектов. В этом уроке мы сказали, что делаем важный расчет с
application и каждый раз вставлял случайное число, потому что цель этого руководства — показать, как сохранить данные. Мы достигли этой цели: при каждом запуске приложение закрывается, а
результаты внутренних вычислений будут потеряны, но база данных сохранит данные.
Мы запускали приложение с одной рабочей станции, но если нам действительно нужно было решать какие-то сложные
расчета, нам нужно будет только изменить URL-адрес подключения к базе данных, чтобы он указывал на удаленный компьютер, на котором запущена база данных, и мы могли бы запустить расчет на нескольких компьютерах одновременно, создавая
сотни или тысячи экземпляров этого приложения, которые, возможно, решают небольшие кусочки большой головоломки и постоянно хранят результаты, что позволяет нам масштабировать наши вычислительные мощности с помощью нескольких
строки кода и немного планирования.
Зачем нужно планирование? Чтобы остаться с этим примером: если бы мы не оставили присваивание идентификаторов строк или меток времени для базы данных, наше приложение было бы намного больше, намного медленнее и гораздо больше ошибок — некоторые из них появляются только тогда, когда мы запускаем два экземпляра приложения одновременно момент.
Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.
LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.
Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать независимо и сможете выпускать не менее 2 технических статей в месяц.
Как создать горячий резерв с PostgreSQL
ЗадачаНаша цель — создать копию базы данных PostgreSQL, которая постоянно синхронизируется с исходной и принимает запросы только для чтения.Версии операционной системы и программного обеспеченияОперационная система: Red Hat Enterprise Linux 7.5Про.
Установите PostgreSQL на Ubuntu 18.04 Bionic Beaver
ЗадачаЦель состоит в том, чтобы установить сервер или клиент PostgreSQL на Ubuntu 18.04 Bionic Beaver.Версии операционной системы и программного обеспеченияОперационная система: — Ubuntu 18.04 Bionic BeaverПрограммного обеспечения: — Сервер Postgr.
Как продвигать пользователя Mediawiki с привилегиями сисопа и бюрократа
Следующие строки описывают процедуру о том, как продвинуть пользователя mediawiki до роли сисопа и бюрократа напрямую, используя базу данных MySQL. База данных доступаСначала подключитесь к своей базе данных, используя mysql клиент. В зависимости .