Java чтение и запись в локальную базу данных?

У меня есть программа, которая постоянно получает информацию с веб-сайта и постоянно обновляется. На данный момент я храню всю эту информацию в arraylist и затем, когда я закончу, я пишу это в текстовый файл.

Мне нужно манипулировать этой информацией; однако он создает массивный текстовый файл, и я не могу постоянно читать и записывать информацию в текстовый файл, потому что это занимает слишком много времени. Так что кто-то сказал мне изучить использование базы данных. Единственной базой данных, которую я когда-либо использовал, была база данных MySQL для веб-сайта, никогда с java.

Есть ли способ сделать базу данных локальной? Как только на моем компьютере (не хотите платить за веб-хостинг, когда я единственный, кто получает доступ к этой информации на моем компьютере)? Я немного заглянул в SQLite, но одна вещь, которую я увидел, заключалась в том, что он не допускает параллелизма. Я думаю о многопоточности моей программы и о том, чтобы она одновременно читала и писала разные разделы. Это возможно?

В основном то, что я прошу здесь:

  1. Какой тип базы данных мне следует использовать?
  2. Как мне установить эту базу данных на моем компьютере?
  3. Некоторая информация о том, как использовать Java jdbc?(Читал немного в это раньше)
  4. Любые учебники по любому из вышеперечисленного (видео, текст и т. Д.)

4 ответа

Решение

Похоже, ваш друг прав, и база данных поможет вам улучшить производительность.

  1. Вы действительно можете использовать любой тип базы данных. Вы даже можете продолжить использовать MySQL, установив его локально и используя Connector/J для подключения в Java. Хотя встраиваемые базы данных, вероятно, самые простые. Один из вариантов - гиперзвуковая БД (HSQLDB)
  2. Нет необходимости "устанавливать" встраиваемые базы данных. Просто добавьте их библиотеку (файл.jar) в путь сборки вашего проекта. Когда вы "подключаетесь" к базе данных, вы обычно можете указать базе данных использовать местоположение в вашей файловой системе для хранения своих данных.
  3. JDBC расшифровывается как Java DataBase Connectivity. Это API, используемый приложениями Java для связи с базами данных. Одной из важных особенностей JDBC является то, что (как правило) не имеет значения, с какой базой данных вы говорите, поскольку API для доступа к любой базе данных одинаков *.
  4. Вот один учебник для JDBC: Доступ к базе данных JDBC(TM)

* API для доступа к базам данных - например, для отправки запросов и получения результатов - обычно будет таким же, но JDBC не может скрыть различия в таких вещах, как SQL. Если вы используете ORM, такой как Hibernate, обычно это может значительно облегчить работу с небольшими несовместимостями между базами данных.

Вам нужна встраиваемая база данных Java, например, HSQL.

Существуют различные варианты для встраивания базы данных SQL в JVM, например, Derby.

Что вам действительно нужно, так это встроенная база данных Java, вы можете найти их огромный список здесь: Сравнение встроенных баз данных Java

Другие вопросы по тегам