桌面应用中的数据库使用swing

时间:2009-09-04 06:05:13

标签: java swing desktop-application

我在java中创建桌面应用程序并在数据库中使用MSAccess。 我希望如果我运行应用程序的设置,应该在客户端计算机上创建数据库,因为可以有不同的客户端使用该应用程序,我如何创建设置? 有免费的工具吗? 请详细解释我.. 谢谢

8 个答案:

答案 0 :(得分:8)

Java 6(针对桌面应用程序工作进行了增强)附带了一个名为JavaDb的内置数据库(以前称为IBM的Derby)。这将做你想要的。

Here's一套关于如何使用它的指南和教程。

我建议当你的应用程序首次启动时,它会检查是否存在已创建的数据库,如果它不存在,它会构建数据库(通过适当的SQL)。我之前使用过这种方法,效果很好。

答案 1 :(得分:5)

我更喜欢nullsoft。看看Open Source Installers Generators in Java

@pratap:应在客户端计算机上创建数据库..

  

在您的设置中添加一个空访问数据库

答案 2 :(得分:1)

查看Mozilla使用的SQLite(Firefox将所有书签和历史存储在数据库中)和其他几个主要应用程序。

答案 3 :(得分:1)

当你说

  

在数据库中访问

您是指Microsoft Access还是访问数据库中的数据。

如果是这种情况,我会建议不要使用MS Access。如果没有,您可以使用JavaDB或HSQLDB并使用SQL脚本来创建数据库。作为总结

  1. 将应用程序打包到其中一个安装程序中(InnoSetup或NSIS是好的)
  2. 安装时,将所有文件解压缩到适当的文件夹中
  3. 在首次运行应用程序之前执行SQL脚本以确保数据库已设置,您可以执行其他内务处理任务以及此步骤(有关安装后步骤,请参阅安装程序文档)
  4. 你的申请很好

答案 4 :(得分:0)

在我使用的NetBeans的最后一个发行版中,有一个创建此类应用程序的向导。该应用程序使用Java Persistence API来存储数据。

答案 5 :(得分:0)

我的选择是HSQLDB,因为它快速,可靠且易于使用。

In the documentation它解释了如何使用独立数据库模式,这主要用于单元测试,但它也适合您的情况。这样做的好处是您只需连接到基于文件的数据库而无需任何特殊设置,如果文件不存在,则会创建它们。

答案 6 :(得分:0)

我会推荐推荐JavaDB的海报。

从应用程序内部管理是非常容易的。更重要的是因为一切都是原生Java你不会得到char-> unicode little-endian-> big-endien以及你在将SQL读入java时通常会遇到的所有其他转换malarky。

一个提示是,JavaDB正在准备您的SQL语句。准备好的语句被缓存,生成的访问程序(类似于访问计划,但实际上是一个jvm程序)被重用,“执行”语句的程序不会被缓存。

如果您真的设置了MSAccess,那么我建议您打包一个“default.mdb”文件,其中定义了所有必需的表,并填充了分类表。如果用户的表不存在,则只需复制默认的.mdb文件并打开它。

答案 7 :(得分:0)

我推荐H2 database,因为它简单,快速,纯Java,而且很小。有关H2与其他Java数据库的比较,请参阅this page,包括其他答案中提到的数据库。它有许多功能Derby / JavaDB和HSQLDB没有。