如何在每次启动应用程序时创建一个新的数据库

时间:2014-02-11 18:33:12

标签: java mysql database sqlite database-design

我正在制作一个swing应用程序,用户在其中输入文件(.html),应用程序解析文件中的数据并解释为数据库。然后有一堆在数据库上运行的查询。 This question告诉我需要在数据库上运行哪种查询。

以下是如何

我的问题如下 -

  1. 如何将空数据库嵌入到我的项目中,每次用户退出应用程序时都会清空该数据库?基本上我不希望用户必须单独安装数据库或设置连接和东西。

  2. 不将html文件解析为数据库并将其转换为不同的数据结构会更好吗?

  3. 由于对数据库的查询结果应该只是数字(我实际上不需要人员名称或Ticket#),我觉得没有太多的努力需要进入数据库部分。所以基本上我想创建一个单独的模块(可以这么说),从应用程序中获取文件 - 将html解析为数据库(或不同的数据结构) - 在运行相应的查询后拉出数字 - 将这些数字提供给应用程序。这可行吗?

1 个答案:

答案 0 :(得分:1)

问题1

您的应用中可能会有类似以下类的内容。只需覆盖startup()方法并在此处执行清理逻辑。

public class YourSwingApp extends SingleFrameApplication {
/**
 * At startup clean the DB.
 */
@Override
protected void startup() {
    show(new YourSwingApp(this));
    // issue a set of 'truncate table' or 'delete from table' query here
    // you may want to create a Singleton to centralize the DB operation
}
}

问题2

如果每次用户退出应用程序时丢弃数据,您可能根本不需要持久层。只需将数据模型保存在内存中就可以了。如果你想要比DB更轻但是持久的东西,你可能想要使用Object Serialization

问题3

术语“模块”让我想到OSGI,这可能是一个过度杀伤力。只需在lib中分离项目并创建一个实现的接口即可。通过这种方式,您的GUI可以使用界面来获得结果。