我正在制作一个swing应用程序,用户在其中输入文件(.html),应用程序解析文件中的数据并解释为数据库。然后有一堆在数据库上运行的查询。 This question告诉我需要在数据库上运行哪种查询。
以下是如何
我的问题如下 -
如何将空数据库嵌入到我的项目中,每次用户退出应用程序时都会清空该数据库?基本上我不希望用户必须单独安装数据库或设置连接和东西。
不将html文件解析为数据库并将其转换为不同的数据结构会更好吗?
由于对数据库的查询结果应该只是数字(我实际上不需要人员名称或Ticket#),我觉得没有太多的努力需要进入数据库部分。所以基本上我想创建一个单独的模块(可以这么说),从应用程序中获取文件 - 将html解析为数据库(或不同的数据结构) - 在运行相应的查询后拉出数字 - 将这些数字提供给应用程序。这可行吗?
答案 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可以使用界面来获得结果。