我正试图回答这个问题,并在MyBatis文档中找到了一条评论:
通常
MapperFactoryBean比这个类更好,因为它不需要额外的代码。但是,如果您需要在您的DAO中执行其他非MyBatis工作,并且需要具体的类并使用SqlSessionDaoSupport或SqlSessionFactory,那么这个类(SqlSessionDaoSupport)是很有用的。
如果我今天选择在我的项目中使用MapperFactoryBean,但后来我需要使用concrete DAO (可能是因为您可能不会100%使用映射器中的SQL),那么我需要更改设计。
如果上述情况属实,那么MapperFactoryBean就会变得不那么有用,而且永远不会(或者大多数情况下)是一个选择。
换句话说: MapperFactoryBean和DAO能共存吗?即使是,他们应该是吗?
发布于 2013-05-27 19:32:02
您知道这个“非MyBatis”或“一些动态SQL”到底是什么吗?嗯,我没有。但是,假设编写Mappers对您的开发人员来说更快、更直观,那么您在这里节省了很多时间。而当有一些可怕的非MyBatis的事情要做,为什么不写,那么一个非常具体的刀,其中只做这一件非迈巴蒂的事?
发布于 2013-06-01 14:33:08
+1用于共存( DAO不是必须的!)如果您在spring框架中使用mybatis,则尤其如此。
至于重构部分,如果您有一个合适的测试框架来帮助解决,这是很好的。
https://stackoverflow.com/questions/16779243
复制相似问题