MyBatis - Mapper vs DAO

时间:2013-05-27 19:14:50

标签: java sql dao datamapper mybatis

我试图回答这个问题,并在MyBatis文档中找到了一条评论:

  

通常MapperFactoryBean优先于此类,因为它   不需要额外的代码。但是,如果你需要,这个类(DAO)很有用   您DAO中的其他非MyBatis工作需要具体类,并使用SqlSessionDaoSupportSqlSessionFactory

如果我今天选择在我的项目中使用MapperFactoryBean,但稍后我需要使用concrete DAO(可能是因为你可能不会100%使用mapper中的SQL),那么我需要改变设计。

如果上述情况属实,那么MapperFactoryBean的用处非常少,绝不会(或大部分)成为一种选择。

换句话说:MapperFactoryBean和DAO可以共存吗?即使是,它们应该是吗?

2 个答案:

答案 0 :(得分:1)

你知道这个“非MyBatis工作”“一些动态SQL”你究竟是怎么称呼它的?好吧,我不是。但是假设为您的开发人员编写Mappers更快更直观,那么您可以节省大量时间。当有一些可怕的非MyBatis要做的事情为什么不写一个非常具体的DAO,只做这个非MyBatis的事情?

答案 1 :(得分:0)

+1共存(DAO不是必须的!)如果你在spring框架中使用mybatis,尤其如此。

至于重构部分,如果您已经合并了一个合适的测试框架来帮助解决问题,那就太好了。