Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java应用程序数据库_Java_Database_Sqlite_Object - Fatal编程技术网

java应用程序数据库

java应用程序数据库,java,database,sqlite,object,Java,Database,Sqlite,Object,我想听听你的建议。我正在构建一个应用程序,它将存储艺术家信息、音乐和其他东西。我打算使用XML作为一种数据库,但当我在这个网站上读到一些帖子时,有些人说使用java数据库。现在我不知道它们是为独立应用程序而存在的。所以我遇到了SQLLite和objectdb。如果我要使用这两种软件中的任何一种,那么用户必须安装单独的软件,这一假设正确吗?或者数据库软件将与我的应用程序集成/编译/捆绑/打包?我正在阅读有关objectdb的文章,它看起来将与我的应用程序一起打包,但不确定。我还在学习java,所以

我想听听你的建议。我正在构建一个应用程序,它将存储艺术家信息、音乐和其他东西。我打算使用XML作为一种数据库,但当我在这个网站上读到一些帖子时,有些人说使用java数据库。现在我不知道它们是为独立应用程序而存在的。所以我遇到了SQLLite和objectdb。如果我要使用这两种软件中的任何一种,那么用户必须安装单独的软件,这一假设正确吗?或者数据库软件将与我的应用程序集成/编译/捆绑/打包?我正在阅读有关objectdb的文章,它看起来将与我的应用程序一起打包,但不确定。我还在学习java,所以我为我的noob问题道歉


我想听听你对此的建议和意见,谢谢

不要使用XML存储数据库,除非它完全适合堆内存。XML设计用于交换数据,而不是存储数据。例如,如果不加载完整的XML文件,就不能说“get me track 7 of the album”。典型的数据库可以做到这一点。

对于您所指的独立桌面应用程序,SQLite是一个不错的选择。它的开销很小,不需要运行DBMS,因此在安装时不会引入依赖项。实际上,它非常轻量级,所有表都存储在一个.db文件中。这显然会给您的应用程序带来潜在的可伸缩性问题,我不认为这会成为一个问题

要开始使用,您需要SQLite API的驱动程序/包装器(这是一个C API,因此包装器可以防止您编写JNI代码!)。SQLiteJDBC就是这样一个包装器

您可能还想熟悉SQLite运行时。它提供了一个控制台应用程序来管理表/模式。这里有一个很好的开始教程


也许你应该看一下。 嵌入Java非常容易,因为它只是一个小的(~1MB)jar文件。 我自己没有用过,但向很多朋友推荐,他们都给了我很好的反馈


如果您使用简单的SQL数据库(如SQLLite或HSQLDB)用java编写桌面应用程序,您可以在这里找到一个不错的解决方案。

。除非您使用诸如BaseX或eXist之类的XML数据库,否则我不建议使用XML,但我不确定在这种情况下XML会给您带来什么。另一方面,我已经在ObjectDb上工作了很长一段时间,使用和安装的简单性令人震惊

使用这些解决方案中的任何一种,您在创建带有嵌入式数据库的安装程序时都不会有太大的困难。SQL和XML选项的“问题”在于,您需要学习如何查询数据库(SQL或Xpath…),并且需要手动将对象映射到持久表示,除非您使用Hibernate之类的映射器。如果您正在开发一个小型的、易于部署的应用程序,那么您真的不想这样做

对于对象数据库,不需要学习SQL(尽管如果愿意,也可以使用OQL查询数据库),而且最重要的是,不需要进行映射

ObjectDB是一个很好的选择,它也可以很容易地嵌入一个文件来存储数据

希望对你有所帮助,祝你的项目好运。
Farid

SQLite是可以的,而且确实是为了嵌入到应用程序中而设计的。有趣的是,我想我将研究SQLLite。因为在进一步阅读之后,我发现在iOS和Android中使用了SQLLite,在我了解了更多关于Java桌面应用程序之后,我想从这里开始编程。但是,您对在java中使用SQLLite、ObjectDB(或任何其他数据库)了解多少?数据库系统是如何打包或组装起来的,这样当我分发应用程序时,用户就不必安装单独的软件了。我只是想更好地了解它是如何工作的,以及它将如何与我的应用程序项目相匹配。太棒了!感谢您的反馈!