精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-09
我对于分页也是看了半天,发现mybatis并没有对于分页有很好的支持,提供所谓真正意义上的jdbc层的分页(类似hibenate那样),网上有人自己改写了mybatis的源码,把hibernate的dialect包copy过来利用,本来我也想这样做,那我必然要写自己的dao层了,和我原来的构想不符合,当时也很迷惑。 后来,直到我看到mybatis自己建议说,他建议用数据库底层自己来做分页,这个迷惑解开了,为什么一定要用jdbc层的分页,jdbc层的分页解决的问题不就是,跨数据库平台吗(比如oracle移动到mysql),但是如果只用mapper 接口的话,所有的数据库操作逻辑全部在xml里,如果真的有跨数据库平台的需求, 其实也是很方便的,大不了准备2套xml,何况这种情况并不多, 所以我直接在sql了做分页了。 这些只是我刚用mybatis一些理解,欢迎大家讨论。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-09
如果是面向接口的,那也许就不需要DAO了
|
|
返回顶楼 | |
发表时间:2011-06-09
mybatis是不要dao的,官方好像也推荐用mapper接口。
|
|
返回顶楼 | |
发表时间:2011-06-09
最后修改:2011-06-09
Mapper方便非常,
虽然说可以不需要DAO了,但会在你的业务逻辑里多次嵌入大量的 SqlSessionFactory.openSession(); session.getMapper(User.class); 等,从纯粹的意义上来说,这些代码还是隐藏在DAO里好一些。 而且使用了DAO,你可以更方便的更换数据访问层,不影响逻辑层的代码,理论上是这样子,但是一般项目定了使用MyBatis,也不会蛋疼的去换成Hibernate,JPA等 |
|
返回顶楼 | |
发表时间:2011-06-09
啥叫你认为,官方就这么建议的
|
|
返回顶楼 | |
发表时间:2011-06-09
事事没绝对,如果你数据访问层比较单一,以后也没多个数据访问层的问题,没有也合理。
|
|
返回顶楼 | |
发表时间:2011-06-09
jorneyR 写道 Mapper方便非常,
虽然说可以不需要DAO了,但会在你的业务逻辑里多次嵌入大量的 SqlSessionFactory.openSession(); session.getMapper(User.class); 等,从纯粹的意义上来说,这些代码还是隐藏在DAO里好一些。 而且使用了DAO,你可以更方便的更换数据访问层,不影响逻辑层的代码,理论上是这样子,但是一般项目定了使用MyBatis,也不会蛋疼的去换成Hibernate,JPA等 请使用Mapper注入。 |
|
返回顶楼 | |
发表时间:2011-06-09
susam 写道 jorneyR 写道 Mapper方便非常,
虽然说可以不需要DAO了,但会在你的业务逻辑里多次嵌入大量的 SqlSessionFactory.openSession(); session.getMapper(User.class); 等,从纯粹的意义上来说,这些代码还是隐藏在DAO里好一些。 而且使用了DAO,你可以更方便的更换数据访问层,不影响逻辑层的代码,理论上是这样子,但是一般项目定了使用MyBatis,也不会蛋疼的去换成Hibernate,JPA等 请使用Mapper注入。 恩,使用了mybatis-spring-1.0.0.jar,整合了spring,用spring来管理了sqlsession,就没有这个问题了。 |
|
返回顶楼 | |
发表时间:2011-06-09
分层的目的是解耦,解耦是为了有更好的可扩展性,提高灵活度
|
|
返回顶楼 | |
发表时间:2011-06-09
supben 写道 啥叫你认为,官方就这么建议的
官方只是推荐使用mapper接口......没有建议说不要写DAO. |
|
返回顶楼 | |