问题标签 [dao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
24062 浏览

java - 使用 DAO 模式的优缺点

正如我在标题中提到的,我很想知道您(作为经验丰富的开发人员)对使用 DAO 模式的看法,特别是在 Web 应用程序中。您发现了哪些优势,您不喜欢使用它的哪些后果?

0 投票
5 回答
677 浏览

wpf - 在 BLL 或 UI 中使用 Linq-to-SQL 实体?

前几天,我有一个客户询问构建一个简单的 WPF LOB 应用程序的建议。他们基本上想要一个用于数据库的 CRUD 应用程序,主要目的是作为 WPF 培训项目。

我还向他们展示了 Linq To SQL,他们印象深刻。

然后我解释说直接从他们的 BLL 或 UI 代码中使用 L2S 实体可能不是一个好主意。他们应该考虑类似存储库模式的东西。

在这一点上,我已经可以感觉到过度工程的警钟在他们的头脑中响起(在某种程度上也在我的头脑中)。他们真的需要一个简单的 CRUD 应用程序的所有复杂性吗?(好吧,它有效地充当了他们的 WPF 培训项目,但让我们假装它变成了一个“真正的”应用程序)。

  • 您是否认为在整个应用程序中使用 L2S 实体是可以接受的?
  • (根据经验)重构以后使用另一个持久性框架有多困难?

在我看来,如果 UI 层将 L2S 实体用作简单的 POCO(不涉及任何 L2S 特定方法),那么以后如果需要的话应该很容易重构。

他们确实需要一种方法来集中 L2S 查询,因此需要某种方法来管理它,即使他们确实直接使用 L2S 实体。因此,在某种程度上,我们已经在推动 DAL/DAO/Repository 的某些方面。

我可以看到 Repo 的主要问题是 L2S 实体和某些域模型之间映射的痛苦。它真的值得吗?您可以在 L2S 实体上“免费”获得很多东西,我认为一旦映射到另一个模型就很难使用这些实体。

想法?

0 投票
5 回答
6544 浏览

java - 我可以做这个通用的事情吗?

似乎我在 Java 泛型方面遗漏了一些东西,因为我认为有些东西很简单,但在我看来这是无法完成的。也许你可以帮助...

这是场景:我正在使用简单的 CRUD 操作编写通用抽象 DAO,因此我的应用程序的每个特定 DAO 都可以免费使用它:

现在我会去实现一个特定的 DAO:

我的 DAO 的客户端代码是:

当客户端执行代码时,BaseDAO 知道它必须返回的实体类型以及该实体的主键类型,因为我将它设置在特定的 dao 上,但我不知道如何正确编写 read() 方法。

希望你能帮忙。非常感谢!

0 投票
2 回答
435 浏览

database - DAO 最佳实践:查询父/子

假设您有一个具有简单父/子关系的域模型,并且每个实体都有自己的关联 DAO,例如:

如果我想添加一个 DAO 方法来检索特定作者的书籍,它的最佳位置是什么?

或者

0 投票
1 回答
359 浏览

sql - DAO、ORM 和查询

需要将一个字段更新为一堆记录中的相同值。使用 DAO/ORM 结构,我将检索每个父对象,遍历每个子对象,更新它的字段,然后保存它。

只写 SQL 会更快:update table set field = value where criteria = specified。

我如何将这些东西组合在一起?我是否坚持使用 dao 结构:

干杯。

0 投票
1 回答
607 浏览

c# - DAO/Repository/NHibernate 和处理边缘数据库案例

一件事一直困扰着我,我在书籍/博客中没有看到太多提及,那就是如何在一个真正不受 DAO 或存储库管辖的系统中处理数据库操作。我喜欢使用通用 DAO/Repositories 的方法来处理常见的 DB 操作,但是如何处理非实体的东西呢?例如,假设我正在构建一个系统,在某些情况下我需要调用一个存储过程来运行批处理操作并返回一个成功代码。或者,我只需要从杂项表中加载日期。或者,我想从表格中加载美国各州的列表。这些情况肯定会发生,而且它们实际上可能与系统中的实体或其他对象没有任何关系。无需放弃讨厌 NHibernate 之类的东西来手动使用 ADO 的讨厌的“杂项”数据库类。

0 投票
1 回答
17710 浏览

java - JPA @Version:如何使用它?

  1. 是否需要创建 setter/getter version
  2. 当用 Hibernate 持久化这个实体时,我不需要手动设置这个值,对吧?
  3. 为了使用 Spring 的乐观并发检查,我还需要配置hibernateTemplate.saveOrUpdate什么?是否支持所有数据库?
  4. 如何对该实体进行单元测试?在我的数据库中,我所有显示版本字段的记录的值为 0
  5. hibernateTemplate.saveOrUpdate每次调用都会增加版本值吗?
0 投票
4 回答
7673 浏览

hibernate - org.hibernate.HibernateException:当前没有会话绑定到执行上下文

我正在尝试将 Spring Security 与 Hibernate 集成。我对这两种技术都是新手,所以我几乎可以肯定在这里一次采取了太多步骤,但我现在想从数据库中验证用户身份。我认为这肯定是 Spring Security 的一个 Hibernate 问题,但我提到它是为了提供一些上下文。下面是错误信息和代码。有人能发现什么吗?

DAO 和事务管理的配置:

这是实现UserDetailsService被调用以对用户进行身份验证的类。这会调用 DAO,请参见以下行userDAO.getUserByLogin(login);

这是从数据库中读取的 DAO。请注意,我正在尝试利用“GenericDAO 模式”:

这是发生错误的类,行Criteria crit = getSessionFactory().getCurrentSession().createCriteria(getPersistentClass());

我的休眠配置(hibernate.cfg.xml)中有以下可能是相关的:

0 投票
3 回答
4628 浏览

java - 使用 JSF、JPA 和 DAO。没有春天?

到目前为止,我仍然在没有 DAO 的情况下使用 JSF 和 JPA。现在我想使用 DAO。但是如何在 DAO 类中初始化 EntityManager?

我是否要使用 Spring 或者是否有没有 Spring 的解决方案?

谢谢。

0 投票
2 回答
266 浏览

java - 数据访问对象通常是如何设计的?

DAO 通常是如何为典型的业务应用程序设计的?一个类或模式是否与数据源对话,或者您是否只是为每个实体有一个单独的 DAO?