我试图回答这个问题,并在MyBatis文档中找到了一条评论:
通常
MapperFactoryBean
优先于此类,因为它 不需要额外的代码。但是,如果你需要,这个类(DAO
)很有用 您DAO
中的其他非MyBatis工作需要具体类,并使用SqlSessionDaoSupport
或SqlSessionFactory
如果我今天选择在我的项目中使用MapperFactoryBean
,但稍后我需要使用concrete DAO
(可能是因为你可能不会100%使用mapper中的SQL),那么我需要改变设计。
如果上述情况属实,那么MapperFactoryBean的用处非常少,绝不会(或大部分)成为一种选择。
换句话说:MapperFactoryBean和DAO可以共存吗?即使是,它们应该是吗?
答案 0 :(得分:1)
你知道这个“非MyBatis工作”或“一些动态SQL”你究竟是怎么称呼它的?好吧,我不是。但是假设为您的开发人员编写Mappers更快更直观,那么您可以节省大量时间。当有一些可怕的非MyBatis要做的事情为什么不写一个非常具体的DAO,只做这个非MyBatis的事情?
答案 1 :(得分:0)
+1共存(DAO不是必须的!)如果你在spring框架中使用mybatis,尤其如此。
至于重构部分,如果您已经合并了一个合适的测试框架来帮助解决问题,那就太好了。