繁体   English   中英

对于中等复杂的Java桌面应用程序; JavaDB连接应该是静态的吗?

[英]For moderately complex Java Desktop app; should JavaDB connection be static?

我正在编写一个中等复杂的Java桌面应用程序,其中包括嵌入式数据库。 在应用程序建立与数据库的连接之后,为什么在应用程序将要关闭之前它应该关闭连接,我看不出任何原因。

实际上,对数据库所做的一切都需要连接。 事务可以在连接中顺序启动和完成,该应用程序并没有对数据库进行任何复杂的操作。

是否有任何原因为什么我不应该创建连接并将其引用放在特定于数据库的类已知和使用的类的静态变量中? 这样就不必在不改变值的情况下在各种方法之间传递连接。

我在某处缺少设计级别的考虑吗?

rc

我建议使用诸如c3p0dbcp类的库来为您处理连接池。 如果需要,它使您可以灵活地在以后扩展应用程序。

static任何东西通常都很难编写适当的测试用例 ,因为您永远不知道静态资源是否已被更改。

三个月后,您将希望能够同时连接到两个数据库-也许您正在做一些导入/导出工作,或升级工作,或将两个客户合并在一起。 然后,您将需要其中两个。 现在突然之间,每个人都使用的静电场是一场噩梦。

您可以研究像GuiceSpring这样的IoC容器,以确保您可以跟踪“单例”对象,而不会滥用静态字段来增强其“单例”性。

避免静电。 考虑使用此类变量的并发和多线程问题。 一个好点是处理您与数据库池的连接。 Spring是您的朋友,可以实现简单且不错的配置

在应用程序建立与数据库的连接之后,为什么在应用程序将要关闭之前它应该关闭连接,我看不出任何原因。

在我看来,这完全可以。 它是一个嵌入式数据库; 它为您的应用服务。 在启动时创建连接,并在需要时使用它,在应用程序关闭时将其关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM