Java读写本地数据库?

我有一个程序,不断从网站获取信息,并不断更新。 截至目前,我将所有信息存储在arraylist ,然后当我完成后,我将其写入文本文件。

我需要操纵这些信息; 然而,它创建了一个庞大的文本文件,我无法不断地读取和写入文本文件,因为它需要太长时间。 所以有人告诉我要研究使用数据库。 我曾经使用过的唯一一个数据库是一个用于网站的MySQL数据库,而不是用于java。

有没有办法让数据库本地化? 就像在我的电脑上一样(当我是唯一一个在我的电脑上访问这些信息的人时,不想支付网络托管费用)? 我看了一点SQLite,但我看到的一件事是它不允许并发。 我正在考虑对我的程序进行multithreading处理,并让它同时读写不同的部分。 这可能吗?

基本上我在这里要求的是:

  1. 我应该使用什么类型的数据库?
  2. 如何在我的计算机上安装该数据库?
  3. 关于如何使用Java jdbc的一些信息?(以前读过一点)
  4. 任何上述任何教程(video,文字等)

听起来你的朋友是正确的,数据库可以极大地帮助你提高性能。

  1. 你真的可以使用任何类型的数据库。 您甚至可以通过在本地安装MySQL并使用Connector / J以Java连接来继续使用MySQL。 虽然可嵌入数据库可能是最简单的。 一个选项是Hypersonic DB(HSQLDB)
  2. 无需“安装”可嵌入数据库。 只需将他们的库(.jar文件)添加到项目的构建路径中。 当您“连接”到数据库时,通常可以告诉数据库使用文件系统上的某个位置来存储其数据。
  3. JDBC代表Java DataBase Connectivity。 它是Java应用程序用于与数据库通信的API。 JDBC的一个重要特性是它(通常)与您正在谈论的数据库无关,因为用于访问任何数据库的API是相同的*。
  4. 这是JDBC的一个教程: JDBC(TM)数据库访问

*用于访问数据库的API – 例如发送查询和检索结果 – 通常是相同的,但JDBC无法隐藏SQL之类的差异。 如果你使用像Hibernate这样的ORM,它通常可以更容易地处理数据库之间的所有小的不兼容性。

您需要可嵌入的Java数据库,例如HSQL 。

在JVM中嵌入SQL数据库有多种选择,例如Derby 。

你真正需要的是一个嵌入式Java数据库,你可以在这里找到一个巨大的列表: Java嵌入式数据库比较