Questions tagged «dao»


12
Java中的数据访问对象(DAO)
我正在浏览一个文档,遇到了一个名为的术语DAO。我发现它是一个数据访问对象。有人可以解释一下这到底是什么吗? 我知道这是一种用于从不同类型的源访问数据的接口,在我的这项小小的研究中,我碰到了一个称为数据源或数据源对象的概念,然后我脑子里一团糟。 我真的很想知道a DAO的编程含义。如何使用?任何从最基本的东西解释这个概念的页面的链接也将受到赞赏。
347 java  dao 

1
不确定我是否了解TransactionAwarePersistenceManagerFactoryProxy
我正在尝试org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy在Spring项目中使用,但是我不确定如何使用它或它是否正是我想要的。我意识到这可以帮助我的DAO与普通的JDO一起工作PersistenceManagerFactory。另一个问题是:如果代理制作不当怎么办?我是否仍可以使用它来访问我的工厂以创建一个可识别事务的持久性管理器?如果工厂管理的对象是单例对象,这会改变情况吗?为什么不直接访问PersistenceManagerFactory?也许PersistenceManagerFactoryUtils.getPersistenceManager会更适合我的需求?可以getObject返回null吗?
192 java  spring  persistence  dao  jdo 

5
数据映射器,表数据网关(网关),数据访问对象(DAO)和存储库模式之间有什么区别?
我试图提高自己的设计模式技能,并且很好奇这些模式之间的区别是什么?它们似乎都是同一个东西-封装特定实体的数据库逻辑,因此调用代码不了解基础持久层。根据我的简要研究,所有这些方法通常都会实现您的标准CRUD方法并抽象出特定于数据库的详细信息。 除了命名约定(例如,CustomerMapper与CustomerDAO,CustomerGateway与CustomerRepository)之外,还有什么区别(如果有)?如果存在差异,您何时会选择一个? 过去,我会编写类似于以下内容的代码(自然而然地简化了-我通常不会使用公共属性): public class Customer { public long ID; public string FirstName; public string LastName; public string CompanyName; } public interface ICustomerGateway { IList<Customer> GetAll(); Customer GetCustomerByID(long id); bool AddNewCustomer(Customer customer); bool UpdateCustomer(Customer customer); bool DeleteCustomer(long id); } 并具有一个CustomerGateway为所有方法实现特定数据库逻辑的类。有时,我不会使用接口,而是将CustomerGateway上的所有方法设为静态(我知道,这使得它的测试性较差),因此可以这样称呼它: Customer cust = CustomerGateway.GetCustomerByID(42); 对于数据映射器和存储库模式,这似乎是相同的原理。DAO模式(我认为与网关相同)是在鼓励特定于数据库的网关。 我想念什么吗?拥有3-4种不同的方法来做同样的事情似乎有些奇怪。

2
休眠中的枚举
在DAO中具有一个其值来自Java枚举的字段通常很有用。一个典型的示例是登录DAO,您通常在其中具有一个将用户表征为“ NORMAL”或“ ADMIN”的字段。在Hibernate中,我将使用以下2个对象以(半)类型安全的方式表示此关系: class User { String username; String passwd; UserType type; } class UserType { private enum Type {ADMIN, NORMAL}; private String type; //Setters/Getters for Hibernate public void setType(String type); public String getType(); //Setters/Getters for user public void setUserType(UserType.Type t); public UserType.Type getUserType(); public static UserType fromType(UserType.Type t); } …
82 java  hibernate  dao 

5
“ @Transactional”应放在哪里服务层或DAO
首先,可能是我要问一些以前已被问到并回答过的问题,但我无法找回搜索结果。一般而言(或到目前为止):)我们在服务层上定义事务注释,通常是Spring Hibernate Crud。 Controller-> Manager-> Dao-> Orm。 现在,我需要根据客户站点在域模型之间进行选择。假设客户端A使用我的域模型都很好,但是另一个客户端网站会给我一个Web服务而不是使用我们的域模型。 我应该替换哪一层。我认为必须是DAO,它将从Web服务获取我的数据并将其发送回去。即两个单独编写的DAO层,并根据情况插入。 我现在意识到,当我们放入@TransactionalService层时,我们一直在进行紧密的耦合(如果有这样的事情或者说没有松散的耦合)。这么多的大脑不会错,或者是(我对此表示怀疑)。 所以问题是“应该在哪里@Transactional放置服务层或DAO?” 服务层是否向下,我应该更换。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.