2012-05-31 34 views
0

我有一个应用程序,它将信息存储在JList中。但是,当然,当应用程序关闭时,所有的信息都会从内存中删除。将数据存储在应用程序中

我试图构建应用程序,以便重新启动时它将包含相同的数据。那么有没有办法将这些数据存储在数据库或类似的数据库中?我在哪里以及如何去做这件事?

+2

*“有没有办法存储这些数据??”*是的,很多。 *“我在哪里以及如何去做这件事?”*最佳方式的细节取决于数据量,所需的形式,应用程序。是沙盒式的,不管它是一个小程序,它是如何启动的。 –

+0

OP不需要数据库 - 但是,有些答案提供了使用数据库的方式,就好像它像文件一样简单。 – Asaf

+0

我发现很难想象在同一侧使用'JList'和DB_的标准应用程序 - 即client_ – Asaf

回答

0

您需要使用JDBC将您的应用程序连接到数据库。 JDBC代表Java Database Connectivity。正如您从名字中看到的那样,它可以让您连接到数据库。因此,您可以将您的应用程序链接到数据库,并以持久的方式存储您的数据。这里以link开头。和here is something供进一步阅读。

0

如果数据不是很复杂并且不是很大(超过几个对象的几个实例),您可以使用序列化将列表保留到文件中。 This会让你开始。如果列表很大或很复杂,你可以考虑一个数据库。搜索JDBC将在您最喜爱的搜索引擎中启动。

0

我想你想要一个普通的平面文件。这很简单;你可以立即拥有一个。 (学习曲线比数据库要少得多。)而且速度很快;您甚至可以在登录到数据库之前阅读1 GB文件。 Java序列化有点棘手,但它可以成为保存大量复杂数据的非常有效的方法。 (请参阅here以了解需要注意的事项,以及更多有用的链接。)例如,如果您希望在会话之间保存大型复杂游戏,则序列化是一种可行的方法。无需将面向对象的结构转换为关系结构。

使用数据库:如果你想数据添加到一个大文件 ,或只读部分从一个大文件中的数据。或者如果其他进程要读取和修改它。

考虑一个DB: 如果您已经使用其他用途。如果用户可能在另一台机器上启动,并且无法从上次会话中找到该文件,并且数据不是太广泛。或者,如果数据本质上是关系性的,并且其他人可能有兴趣查看它。

因此,如果您有一个简单的情况,即用户始终在同一个目录中启动,只需编写并读取一个简单文件即可。如果您有很多复杂而广泛的面向对象数据,请使用一个平面文件,即使它不是而是容易做到 - 您将需要速度。否则,请考虑一下数据库。

1

坚持恕我直言的最简单方法是在文件中。

如果您需要键值映射,请尝试使用Properties
或者,如果您要绑定更复杂的对象,我推荐使用Simple XML序列化包。

相关问题