Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-DAO层或插件_Java_Frameworks_Persistence_Dao - Fatal编程技术网

Java-DAO层或插件

Java-DAO层或插件,java,frameworks,persistence,dao,Java,Frameworks,Persistence,Dao,我在SourceForge上从事JBJF项目,我们希望改进此框架的数据库访问。目前,它是半灵活的,但访问是在任务级别完成的 我们希望设置一个简单的接口,这种接口本质上是通用的,可以承载对JBJF的数据库访问。因此,框架类不关心什么样的数据库,它们只调用getConnection()之类的方法,然后返回java.sql.Connection对象 我想知道什么更合适,一个具有单一接口的典型DAO层,还是一个插件类型的结构,我们在XML文件中配置数据库服务,框架在启动时加载插件 蒂亚 adym如何将所

我在SourceForge上从事JBJF项目,我们希望改进此框架的数据库访问。目前,它是半灵活的,但访问是在任务级别完成的

我们希望设置一个简单的接口,这种接口本质上是通用的,可以承载对JBJF的数据库访问。因此,框架类不关心什么样的数据库,它们只调用getConnection()之类的方法,然后返回java.sql.Connection对象

我想知道什么更合适,一个具有单一接口的典型DAO层,还是一个插件类型的结构,我们在XML文件中配置数据库服务,框架在启动时加载插件

蒂亚


adym

如何将所有这些抽象出来并使用JPA

如何将所有这些抽象出来并使用JPA

在不了解细节的情况下很难说,但一般来说,我不会编写自己的框架,而是使用Hibernate或类似的ORM工具。它已经定义了将对象映射到表和表的XML,可以轻松地交换不同的数据库实现,并且通常是做这类事情的一个很好的工具。

不知道细节很难说,但一般来说,我不会编写自己的框架,而是使用Hibernate或类似的ORM工具。它已经定义了用于将对象映射到表和表的XML,可以轻松地交换不同的数据库实现,并且通常是执行此类操作的一个很好的工具。

您列出的两个选项并不相互排斥;您可以有一个DAO/Repository层,通过一些接口/API访问该层,同时在运行时注入具体的实现以满足依赖关系

例如,编写一个WidgetRepository接口,定义数据访问API的小部件部分。然后,您可以提供实现接口的FileSystemWidgetRepository、HibernateWidgetRepository、XmlWidgetRepository、JpaWidgetRepository等

一般规则是在满足需求的同时尽可能使用高级别的抽象。在我给出的示例列表中,基于JPA的存储库是最高级别的,因为它甚至抽象了ORM框架


然后,您可以在使用WidgetRepository的对象中保留WidgetRepository引用。仅针对此接口编写代码。接下来,建立一个框架,如,它将在运行时基于一些XML配置或自动连接机制注入一个具体的WidgetRepository实现。

您列出的两个选项并不相互排斥;您可以有一个DAO/Repository层,通过一些接口/API访问该层,同时在运行时注入具体的实现以满足依赖关系

例如,编写一个WidgetRepository接口,定义数据访问API的小部件部分。然后,您可以提供实现接口的FileSystemWidgetRepository、HibernateWidgetRepository、XmlWidgetRepository、JpaWidgetRepository等

一般规则是在满足需求的同时尽可能使用高级别的抽象。在我给出的示例列表中,基于JPA的存储库是最高级别的,因为它甚至抽象了ORM框架


然后,您可以在使用WidgetRepository的对象中保留WidgetRepository引用。仅针对此接口编写代码。接下来,建立一个框架,如,它将在运行时基于一些XML配置或自动连接机制注入一个具体的WidgetRepository实现。

我开始认为Hibernate变得太大和臃肿了,但我最近在一个使用最新3.5版本和JPA的项目中工作,他们肯定对其进行了精简,使其比其他一些3.x版本要好得多。我建议JPA使用Hibernate:-)


这种方法的一大优点是Hibernate在处理多种不同的数据库方言方面有多么出色。我们的应用程序在MySQL、H2和SQLServer上运行,没有任何修改(可能也会在其他主要数据库上运行)。

我开始认为Hibernate变得太大太臃肿了,但我最近在一个使用最新3.5版本和JPA的项目中工作,他们肯定对其进行了精简,使其比其他一些3.x版本要好得多。我建议JPA使用Hibernate:-)


这种方法的一大优点是Hibernate在处理多种不同的数据库方言方面有多么出色。我们的应用程序在MySQL、H2和SQLServer上运行,没有任何修改(可能也会在其他主要数据库上运行)。

听起来JPA是一个常见的线程……我现在需要做一些阅读。。。tia,ADYMA听起来像JPA是这里的一个常见线索…我现在需要做一些阅读。。。蒂亚,阿德姆