0

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

通常MapperFactoryBean是此类的首选,因为它不需要额外的代码。但是,DAO如果您需要在您的内部进行其他非 MyBatis 工作,DAO并且需要具体的类并使用SqlSessionDaoSupportSqlSessionFactory

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

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

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

4

2 回答 2

1

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

于 2013-05-27T19:32:02.220 回答
0

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

至于重构部分,最好有一个合适的测试框架来提供帮助。

于 2013-06-01T14:33:08.103 回答