标签: dao

DAO模式是否在.NET中广泛使用?

DAO数据访问对象是.NET中常用的模式吗?我一直使用DAO作为提供访问我的数据层的方法.例如,我可能在我的EntityFramework ObjectContext上有一个瘦接口,将我的所有ObjectSet暴露为IObjectSet.

然后,DAO将公开复杂查询,每个DAO都依赖于此接口.我可能有一个ProductDAO暴露像GetProductsOnSale()或的方法GetInfrequenlySoldProducts().然后我的控制器或演示者将使用这些方法,这些方法可能是虚拟的,以允许对单元测试的特定结果进行存根.

这是.NET中常用的习惯用法吗?出于某种原因,我在线使用此模式看到的绝大多数示例都基于Java.甚至 关于DAO最佳实践的这个问题也被标记为Java而不是C#.

使用来自其他社区的东西没有任何问题,我只是有点担心我身边的每个人都在以不同的方式做事......

.net c# dao

15
推荐指数
1
解决办法
2万
查看次数

DAO&BO(数据访问层) - 架构

我对网上发现的一个例子有点困惑 - spring和hibernate(指向4. Model & BO & DAO).有Model,DAO和BO类(+ DAO和BO接口).我不清楚的是,如果DAO和BO分享完全相同的功能,那么为什么DAO和BO被分成不同的类(唯一不同的是BO有一个DAO设置器).

作者只解释了这种模式:

有助于清楚地识别图层,以避免弄乱项目结构

但它似乎过度设计了我(至少在这种情况下).我知道这个例子很简单,但是这个类的分离对什么有用呢?有人能提供一个例子吗?

java database dao layer

15
推荐指数
1
解决办法
2万
查看次数

DAL,DTO和DAO在3层架构风格(包括MVC)之间有什么区别

最近我学习了ORM(对象关系映射)和3层架构风格(表示,业务和数据持久性).如果我理解正确,我可以将数据持久层分成DTO和DAO层.

我想了解,以下部分如何在数据持久层中一起工作.

  • DAL(数据访问层)
  • DTO(数据传输对象)
  • DAO(数据访问对象)

最重要的是,我了解到了这一点

在较大的应用程序中,MVC是仅N层架构的表示层.

我真的很困惑,例如在3层架构风格中它是如何可能的,其中MVC只是一个表示层,而DTO,DAO,DAL只是数据持久层的一部分.我完全迷失了.

如果有人告诉我它是如何一起工作的真相,我会很高兴的.

请不要关闭这个问题,因为有许多不同的表达方式,我看到它到处都是这些东西基本上在大型应用程序中相互关联,我无法想象它是如何工作的.

我很感激任何答案!

model-view-controller orm dao data-access-layer dto

15
推荐指数
2
解决办法
6891
查看次数

在Java中使用泛型为类编写的单元测试是什么?

本文中JpaDao定义的类的非常具体的示例为例:

public abstract class JpaDao<K, E> implements Dao<K, E> {
    protected Class<E> entityClass;

    @PersistenceContext
    protected EntityManager entityManager;

    public JpaDao() {
        ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
        this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
    }

    public void persist(E entity) { entityManager.persist(entity); }

    public void remove(E entity) { entityManager.remove(entity); }

    public E findById(K id) { return entityManager.find(entityClass, id); }
}
Run Code Online (Sandbox Code Playgroud)

最好是为应用程序中的所有现有实体(Order,CustomerBook等)编写单元测试,还是只为一个实体编写单元测试是可以接受的,正如另一个问题所暗示的那样?有关使用泛型的单元测试java类的最佳实践吗?

java generics unit-testing dao jpa

14
推荐指数
1
解决办法
8422
查看次数

Android - 使用Dao Pattern和contentProvider

使用带有dao Pattern的ContentProvider是正确的.?或者它会带来任何性能问题?

我会尽力解释.我有一个contentProvider.一个活动,一个道和一个豆..

这是代码:

class Bean(){

 String name;

}

class Dao{

 Activity activity;

 public Dao(Activity activity){

 this.activity = activity;

public List<Bean> getAllBean() {

    Cursor c = activity.managedQuery(Bean.CONTENT_URI, PROJECTION,
                null, null, Bean.DEFAULT_SORT_ORDER);
    return BeanMapper.GetAllFromCursor(c);
    }
}

}

Class Activity{
.....


 onCreate(....){

  Dao dao = new Dao(this);
  List<Bean> aList = dao.getAllBean();

}
....}
Run Code Online (Sandbox Code Playgroud)

你怎么看 ?

问候

android dao android-contentprovider

14
推荐指数
1
解决办法
7097
查看次数

DAO可以调用DAO吗?

我有需要为客户和客户地址更新数据库的组件(通过JDBC).从CustomerDAO调用CustomerAddressDAO是否合适?或者创建一个单独调用它们的"CustomerDataManager"组件?

naming dao

14
推荐指数
2
解决办法
6709
查看次数

Hibernate和Spring - Dao,服务

我一直在阅读一些教程,我可以看到大多数MVC实现

基于:

1)dao接口,例如"IUserDao"

2)该接口的dao impl - "mySimpleUserDaoImpl"

3)持久性的服务接口:"IUserService"

4)和一个impl - "UserServiceImpl"

这是最好的做法吗?我的意思是我问这个问题的原因是因为使用getXById(),deleteX(x),createX(x)方法提供30个服务看起来多余或多或少相同似乎是多余的.

请考虑到我正在使用spring 3和hibernate 4,我决定在开始用代码猛击我的键盘之前我会问这个问题

谢谢.

java service spring dao hibernate

14
推荐指数
1
解决办法
1万
查看次数

ORM/DAO/DataMapper/ActiveRecord/TableGateway的区别?

请你解释一下以下数据库代表之间的区别,比如PHP:

ORM DAO DataMapper ActiveRecord TableGateway

任何例子将不胜感激.

php database orm activerecord dao

13
推荐指数
1
解决办法
3434
查看次数

高流量网站的推荐结构

我正在重写一个大网站,需要非常扎实的架构,这里是我的几个问题,请原谅我混合苹果和橙子,也许还有奇异果:)我做了很多研究,最后完全糊涂了.

主要问题:您将采用哪种方法来构建一个预计会以各种方式增长的大型网站?

  1. 单个入口点,数据库中的页面数据,通过将GET变量与数据库条目相关联来拉出(?pageid = whatever)

  2. 单个入口点,页面数据在单独的文件中,包含基于GET变量(?pageid =包含whatever.php的任何内容)

  3. MVC(好吧,伙计们,我都是为了这个,但是除了检查所有的教程和框架之外无法掌握这个概念,他们是否将"视图"存储在数据库中?从示例中可以看出,如果你有1000页相同的话它们可以由1个模型塑造,但我仍然需要1000个"视图"文件?)

  4. PAC - 这对我来说听起来更合乎逻辑,但没有找到太多资源 - 如果这是一个好方法,你能推荐任何书籍或链接吗?

  5. DAL/DAO/DDD - 在发布问题之前,我通过努力阅读堆栈溢出来了解这些术语.不确定它是否属于此列表

  6. 坐下来创建我自己的架构(如果没有人在这里启发我可能会这样做:)

  7. 没有提到的东西......

谢谢.

php model-view-controller dao data-access-layer pac

13
推荐指数
1
解决办法
5177
查看次数

Hibernate 5.2版 - >很多Query方法都弃用了吗?

我是Hibernate的新手.

我正在尝试获取所有管理员的名字和姓氏列表.

我的以下代码中有两个警告.我已经尝试在线搜索了很多.

1)查询是原始类型.应该参数化对泛型类型Query的引用.

2)不推荐使用Query类型的方法list().

public List<Object> loadAllAdmins() {
                List<Object> allAdmins = new ArrayList<Object>();
                try {
                        HibernateUtil.beginTransaction();

                        Query q = currentSession.createQuery("SELECT admin.firstName, admin.lastName from AdminBean admin");

                        allAdmins= q.list();

                        HibernateUtil.commitTransaction();
                } catch (HibernateException ex) {
                        System.out.println("List<AdminBean> loadAllPersons: HibernateException");
                }
                return allAdmins;
        }
Run Code Online (Sandbox Code Playgroud)

但我在整个网络上都看到了这样的示例代码.我该如何解决这两个问题?

更新

我只是尝试按照建议使用Criteria.它还说,对于Criteria,list()方法是弃用的......看起来很多方法都被弃用了Query和Criteria,包括uniqueResult()和其他...任何建议我应该如何替换它们?

java sql dao hibernate hql

13
推荐指数
2
解决办法
3万
查看次数