问题标签 [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.
ms-access - 带有 Access 2007 的 DAO 中的奇怪字段分配问题
这是我上一个问题的后续。
一旦我解决了参考文献的问题,我遇到了另一个非常奇怪的问题。基本上,我在表单上的按钮后面有以下内容:
我现在已经链接了引用,在第二行放置了一个断点,并在 Recordset("Att") 上添加了一个监视。当执行在断点处停止时,我可以从手表中看到 Recordset("Att") 返回 Variant/Object/Field2 类型的值,并且该字段包含几乎我期望的内容。
但是当我跨过第二行(允许它执行)时,会弹出以下错误:“对象变量或未设置块变量”
当然,attachmentField 完成后没有分配任何内容。我错过了什么?
php - 一个大 DAO 还是多个较小的 DAO?
如果我必须将一个对象保存到具有关系的数据库中,我是让那个 dao 自己完成所有保存,还是委托给其他 DAO。如果它应该委托给其他 DAO,应该在 DAO 本身中完成,还是在上面的层(如服务层)中完成?我会为此使用 ORM,除了在 PHP 中,还没有什么好东西存在。
java - 从 POJO 获取带注释的休眠表名
我有一个实体,其声明大致如下:
我正在制作一个通用的 DAO 类,这样做我想检索“myUserTable”名称。有什么办法可以达到这个名字吗?
architecture - 为什么将 DAO 层置于持久层之上(如 JDO 或 Hibernate)
数据访问对象 (DAO) 是一种常见的设计模式,由 Sun 推荐。但最早的 Java DAO 示例直接与关系数据库交互——它们本质上是在进行对象关系映射 (ORM)。现在,我看到 DAO 是在 JDO 和 Hibernate 等成熟的 ORM 框架之上,我想知道这是否真的是一个好主意。
我正在开发一个使用 JDO 作为持久层的 Web 服务,并且正在考虑是否引入 DAO。在处理包含其他对象映射的特定类时,我预见到一个问题:
JDO 足够聪明地将它映射到“BOOKS”和“BOOKDESCRIPTIONS”表之间的外键约束。它透明地加载 BookDescription 对象(我相信使用延迟加载),并在持久化 Book 对象时持久化它们。
如果我引入一个“数据访问层”,写一个像BookDao这样的类,把所有的JDO代码都封装在里面,那么这个JDO对子对象的透明加载是不是绕过了数据访问层呢?为了一致性,不应该通过一些 BookDescriptionDao 对象(或 BookDao.loadDescription 方法)加载和持久化所有 BookDescription 对象吗?然而,以这种方式重构会使操作模型变得不必要地复杂。
所以我的问题是,直接在业务层调用 JDO(或 Hibernate,或任何你喜欢的 ORM)有什么问题?它的语法已经非常简洁,并且与数据存储无关。如果有的话,将它封装在数据访问对象中的好处是什么?
spring - 在 Spring 中同时访问 JDBC ResultSet
我在 Spring JDBC DAO 中处理大量数据。DAO 直接在对象上返回一个迭代器,该对象使用take()对有界BlockingQueue进行操作,而检索操作发生在单独的线程中(使用ExecutorService)。
在此线程中,我看到以下行为:检索有效,但对ResultSet的某些调用导致调用挂起。这些电话是
- isClosed()和
- isLast()
但不是
- isAfterLast()或
- isBeforeFirst()或
- 是第一()
显然我需要知道最后一个元素是什么(为了将一个特殊元素插入到阻塞队列中,在迭代器 hasNext() 方法中产生 false )。我可以通过在将对象放入BlockingQueue之前找出ResultSet中的行数来解决它,但这感觉有点笨拙。是否有使用 ResultSet 的线程安全方式?
切换到多线程数据源(我测试了 C3POs ComboPooledDataSource)似乎没有帮助。
注意:这个问题是我首先(错误地)在这里发现的
delphi - 使用 DAO 执行查询
我想使用 DAO 对 Access 数据库执行查询列表。“Database.Execute()”方法似乎适用于此,它只能执行“操作查询”,即不返回结果集的查询(MSDN 参考)。对于返回记录的查询,可以使用“Database.OpenRecordset()”。如果传递了错误类型的查询,这两种方法都会抛出异常。
在列表中同时拥有操作查询和选择查询,我如何预先决定哪些会返回记录,哪些不会?
php - OOP DAO 设计问题
快速背景:我正在用 PHP 编程,我有一个域模型,它有一个单独的数据访问层(DAO 类),负责从数据库中获取数据并创建域类。
假设我有一个 DAO 类负责创建group和groupList对象。您可以将群组想象为社交网络的一个组成部分;尽管对于这个问题,它们是什么并不重要。
我需要能够要求 DAO根据各种不同的标准为我制作各种groupList对象:
- 最近添加的组
- 最受欢迎的团体
- 被管理员标识为“精选”的群组
- 用特定标签标记的组
- 与某个关键字匹配的组
- 特定类别中的组
- 某个人创建的群组
- 在某一天创建的组
其中一些我现在实际上并不需要,但我可以想象在项目完成之前我会需要它们。现在我从一个不错的简单 DAO 方法开始:createList。这很好用。您可以将伪代码视为:
随着我的应用程序的进展,我创建了一个新方法createFeaturedList。这很好用。但它实际上与createList非常相似,只是查询略有不同。大约 150 行代码的其余大部分是相同的。
那么...对于我需要的所有略有不同的情况,我该怎么办?大多数时候,我真的只是想根据某些标准对列表进行过滤和排序。问题是——我应该:
a)创建许多专注的创作方法,例如:
- 创建列表()
- 创建类别列表(类别对象)
- 创建用户列表(用户对象)
- 创建标签列表(标签)
- 创建流行列表()
或者
b)创建一个可以做所有事情的 BIG 方法: - createList ( searchString, orderBy, filterByCategoryObject=null, filterByUserObject=null )
我非常喜欢(a)的想法,因为我的 DAO 接口更简单,不太可能需要更改(例如:当我突然需要传递一个日期来比较时添加另一个参数)当你有搜索之类的东西时,困难就来了您希望能够与其他参数组合的关键字;例如:搜索类别列表、搜索热门列表、搜索标签列表等... (a) 是我开始使用的。
我对重构 (b) 进行了调情,但我可以看到我的方法变得非常大而且非常复杂,而且在构建 SQL 时有很多“if”和“select”来处理不同的情况,并且输入该方法的许多参数。但至少这一切都在一个地方。你可以把东西结合起来;例如:一个用户的组,用 blah 标记,匹配关键字 blah。
c# - C# 和 DAO。为什么 RS.Fields("ColName") 不起作用?
最后一条指令适用于 VBA 或 VB.NET 我想,为什么它不适用于 C#?
ms-access - 打开带有 2 个“扩展名”的文件时出现 Jet 错误 3011
当我尝试使用 Jet 打开带有 2 个“扩展名”(“filename.tst.csv”)的文件时,遇到了 Jet 抛出错误 3011 的问题。
运行时错误“3011”
Microsoft Jet 数据库引擎找不到对象“filename.tst.csv”。确保对象存在并且正确拼写其名称和路径名。
代码如下所示:
我已经将问题追踪为第二个扩展名(或明显的扩展名)“.tst”,但我不确定为什么会发生错误,我无法通过谷歌或通过这里找到答案 - 但是我想有人可能对这些限制有所了解。
这是在 VB6 中使用 DAO 3.6。
excel - 如何使用 CDaoDatabase 打开 Excel 2007 (xlsx) 文件
使用 afxdao.h 中定义的 CDaoDatabase,如何打开 Excel 2007 (xlsx) 文件?我可以使用连接字符串 Excel 8.0;HDR=NO;IMEX=1 打开 Excel 2003 (xls) 文件,有人知道我该怎么做吗?
谢谢!