当前位置: 首页 > 面试题库 >

在Java Swing应用程序中数据库和用户界面之间自动数据绑定的最佳方法?

阚夕
2023-03-14
问题内容

我目前面临着创建具有数十个表和数千个字段的数据库用户前端应用程序的需求。

它应该是java swing应用程序,我正在尝试找到尽可能多的自动化解决方案。理想情况下,完全避免手动创建DAO层,Bean定义和GUI创建。

当前,我们正在讨论将数据库转换为XML文档集的可能性,因此解决方案应包括同时使用关系数据库和XML文档的能力。

有什么想法/经验吗?


问题答案:

确实有两个步骤:

第一个是选择对象关系映射器(ORM)。这可以是JPA提供程序,JDO提供程序或Hibernate之类的东西。JPA是语言支持的规范,用于在Java对象和数据库之间进行映射。我还使用过Hibernate(Hibernate令人困惑,因为它既是独立的ORM也是JPA提供程序),并且对我来说效果很好。您的ORM将描述将Java对象的类/字段存储到的表/行,还将提供事务和一种机制,以在您的应用程序方便时保留Java对象的更改。

如果您正在考虑存储到XML,那么您可能希望将DataNucleus看作是JPA
/ JDO提供程序,它对XML存储提供了早期支持。

第二是选择您的绑定框架。如果您使用的是Swing,那么NetBeans平台自然是一个不错的选择,就像垃圾桶建议的那样。NetBeans提供了一系列旨在简化应用程序开发的技术,包括绑定技术。如果您使用NetBeans
IDE,那么您将获得内置的GUI创建工具。我对GUI创建工具没有任何经验,因此我不能说太多了。

如果您要对数据库执行直接的Swing胖客户端,则无需使用DAO。DAO在客户端和服务器上都有代码的多层应用程序中很有用。如果您正在客户端上运行所有逻辑,而服务器只是一个数据库,则不需要DAO。



 类似资料:
  • 问题内容: 我希望在学习快速的过程中开发一个库存/物品库存应用程序。它基本上是具有项目名称,数量和位置的东西。 例如。 25号工作货车灯泡 开关,6,仓库 当用户输入此数据并按下按钮时,什么是存储此数据并在以后检索的最佳方法。我知道我可以将此附加到数组并显示该数组,但是如果应用程序关闭,该怎么办? 我应该在学习数据库存储吗?我可以将数据保存到手机吗? 问题答案: 如果要存储的数据很少且不敏感,则可

  • 问题内容: 在运行在node.js / Express上的开源应用程序中存储数据库配置(用户名,密码)的最佳方法是什么?两个具体问题: 例如,我是否应该将其放入文件夹中的单独config.js文件中,并且永远不要将其包含在GitHub上公开可用的主存储库中? 要包括配置,它是否像需要它的文件一样简单,或者有更好的方法呢? PS很抱歉,如果问题看起来有点简单或表达方式不够完善,但我才刚刚开始:) 问

  • 问题内容: 用Java在程序运行之间存储数据的最佳方法是什么?我已经知道您可以使用文本文件并以这种方式存储信息,但是我想知道是否有更好的方法来存储程序在两次运行之间生成的信息。 另外,有什么方法可以确保信息安全?具体来说,我想让最终用户无法访问它。 问题答案: 我想知道是否还有其他方法可以在程序运行之间放置该程序生成的信息? 只需使用即可将其序列化为文件,然后将其取回。 还有什么方法可以确保信息安

  • 我有一个关于用户访问另一个用户创建的数据的问题。下面我将用一个案例来解释。 我使用的是Realm移动平台。该应用程序使用Realm Auth允许用户通过电子邮件、谷歌和facebook帐户进行注册。此时此刻,我正在使用以下URL作为域:。。。“:9080/~/name”。 我将尝试用下面的例子来解释我想要实现的目标。想象一下我有UserA和UserB。一旦用户在应用程序中注册(使用SyncUser

  • 问题内容: 我有一个活动,这是整个应用程序中使用的主要活动,它具有许多变量。我还有另外两个活动,我希望能够使用第一个活动中的数据。现在我知道我可以做这样的事情: 但是我想共享很多变量,有些可能很大,所以我不想像上面那样创建它们的副本。 有没有一种方法可以直接获取和更改变量而无需使用get和set方法?我记得在Google开发者网站上读过一篇文章,建议不要在Android上使用此功能。 问题答案:

  • 根据文档,来自的room实例应该保存的数据是persist。但还是迷路了。我的项目必须数据库 第一个数据库 @database(实体=[foodmodel::class],version=4,exportSchema=false)抽象类FoodDatabase:RoomDatabase(){ 第二数据库 抽象类MyFoodDatabase:RoomDatabase(){abstract val M