Java如何读写本地数据库?

5
我有一个程序,它不断从网站获取信息并进行更新。目前我将所有信息存储在一个arraylist中,然后在完成时将其写入文本文件。
然而,我需要操作这些信息,但是它会创建一个巨大的文本文件,我无法不断地读写文本文件,因为这太耗费时间了。所以有人告诉我要考虑使用数据库。我曾经使用过MySQL数据库用于网站,但从未使用过Java。
有没有办法使数据库本地化?也就是只在我的计算机上(当我是唯一访问此信息的人时,不想为Web托管付费)?我稍微研究了一下SQLite,但其中之一是它不允许并发。我正在考虑将我的程序多线程化,并同时读取和写入不同的部分。这可行吗?
基本上我在这里询问的是:
1. 我应该使用哪种类型的数据库? 2. 如何在我的计算机上安装该数据库? 3. 一些关于Java jdbc的信息?(之前有些研究) 4. 关于以上任何问题的教程(视频、文本等)。

如果并发访问不太多,我认为你可以使用SQLite,而不会对性能产生太大影响。否则,你应该下载MySQL并将其安装为本地服务并使用它。 如果你有时间学习,也可以使用ORM解决方案,如Hibernate或Datanucleus-这将使你的数据访问更抽象和可移植(你可以轻松地从excel / xml切换到mySQL / oracle等存储/后端)。 - Matyas
4个回答

8

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

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

访问数据库的API(例如发送查询和检索结果)通常是相同的,但JDBC无法隐藏SQL等方面的差异。如果您使用类似Hibernate的ORM,则通常可以更轻松地处理数据库之间的所有小不兼容性。


我打算开始研究Hypersonic DB(HSQLDB)。既然你是第二个建议它的人,那肯定很不错。感谢你的回答。 - Jon Storm

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

有趣,我会去了解一下,谢谢。这给了我一个开始研究的地方。 - Jon Storm

0

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


有趣,我会去了解一下,谢谢。这给了我一个开始研究的地方。 - Jon Storm

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接