Java чтение и запись в локальную базу данных?
У меня есть программа, которая постоянно получает информацию с веб-сайта и постоянно обновляется. На данный момент я храню всю эту информацию в arraylist
и затем, когда я закончу, я пишу это в текстовый файл.
Мне нужно манипулировать этой информацией; однако он создает массивный текстовый файл, и я не могу постоянно читать и записывать информацию в текстовый файл, потому что это занимает слишком много времени. Так что кто-то сказал мне изучить использование базы данных. Единственной базой данных, которую я когда-либо использовал, была база данных MySQL для веб-сайта, никогда с java.
Есть ли способ сделать базу данных локальной? Как только на моем компьютере (не хотите платить за веб-хостинг, когда я единственный, кто получает доступ к этой информации на моем компьютере)? Я немного заглянул в SQLite, но одна вещь, которую я увидел, заключалась в том, что он не допускает параллелизма. Я думаю о многопоточности моей программы и о том, чтобы она одновременно читала и писала разные разделы. Это возможно?
В основном то, что я прошу здесь:
- Какой тип базы данных мне следует использовать?
- Как мне установить эту базу данных на моем компьютере?
- Некоторая информация о том, как использовать Java jdbc?(Читал немного в это раньше)
- Любые учебники по любому из вышеперечисленного (видео, текст и т. Д.)
4 ответа
Похоже, ваш друг прав, и база данных поможет вам улучшить производительность.
- Вы действительно можете использовать любой тип базы данных. Вы даже можете продолжить использовать MySQL, установив его локально и используя Connector/J для подключения в Java. Хотя встраиваемые базы данных, вероятно, самые простые. Один из вариантов - гиперзвуковая БД (HSQLDB)
- Нет необходимости "устанавливать" встраиваемые базы данных. Просто добавьте их библиотеку (файл.jar) в путь сборки вашего проекта. Когда вы "подключаетесь" к базе данных, вы обычно можете указать базе данных использовать местоположение в вашей файловой системе для хранения своих данных.
- JDBC расшифровывается как Java DataBase Connectivity. Это API, используемый приложениями Java для связи с базами данных. Одной из важных особенностей JDBC является то, что (как правило) не имеет значения, с какой базой данных вы говорите, поскольку API для доступа к любой базе данных одинаков *.
- Вот один учебник для JDBC: Доступ к базе данных JDBC(TM)
* API для доступа к базам данных - например, для отправки запросов и получения результатов - обычно будет таким же, но JDBC не может скрыть различия в таких вещах, как SQL. Если вы используете ORM, такой как Hibernate, обычно это может значительно облегчить работу с небольшими несовместимостями между базами данных.
Существуют различные варианты для встраивания базы данных SQL в JVM, например, Derby.
Что вам действительно нужно, так это встроенная база данных Java, вы можете найти их огромный список здесь: Сравнение встроенных баз данных Java