论坛首页 入门技术论坛

iBATIS那一大堆的不伦不类的JavaBean~~~~

浏览 41772 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-12-21   最后修改:2008-12-21
caipanjin 写道
rtm 写道
并不是因为你用了ibatis之后才出现这些你所谓的不伦不类的JavaBean,这些本来应该是你的Domain,而只是用ibatis来持久化,只能说明你主次不分,完全没有概念

Hibernate是完全面向对象来维护关系的,而iBATIS却不是。对于需要多表的操作,持久化怎么一样了?

面向对象来维护关系不是因为hibernate而存在,本来就应该这么做,只是用hibernate维护而已,最多是用hibernate比较方便,而其他框架可能稍微麻烦一点.另外ibatis的ResultMap极其强大,一样可以完成关联查询,建议再好好看ibatis文档.
偶闪了,不回复了
2 请登录后投票
   发表时间:2008-12-21  
rtm 写道
caipanjin 写道
rtm 写道
并不是因为你用了ibatis之后才出现这些你所谓的不伦不类的JavaBean,这些本来应该是你的Domain,而只是用ibatis来持久化,只能说明你主次不分,完全没有概念

Hibernate是完全面向对象来维护关系的,而iBATIS却不是。对于需要多表的操作,持久化怎么一样了?

面向对象来维护关系不是因为hibernate而存在,本来就应该这么做,只是用hibernate维护而已,最多是用hibernate比较方便,而其他框架可能稍微麻烦一点.另外ibatis的ResultMap极其强大,一样可以完成关联查询,建议再好好看ibatis文档.
偶闪了,不回复了

ResultMap是需要自定义的,这就需要定义N多的bean来实现复杂的业务数据的保存,而Hibernate却可以通过对象之间的关系来维护。这显然设计是不一样的。
0 请登录后投票
   发表时间:2008-12-21  
e..ibatis是数据库驱动
hibernate是对象驱动
不是一个东西,没必要争论啥。。
0 请登录后投票
   发表时间:2008-12-21  
repsihWDX 写道
crud还是用jdbc吧
做个毕业设计没必要搞那么复杂
你够强就自己写个小OR映射框架咯
其实都不难,10几天的事情。

虽然是个毕业设计,但是我做还是一个比较完整的项目,也算是找工作之前练练手吧
0 请登录后投票
   发表时间:2008-12-21  
可能用ibatis的项目出来了.
用hibernate的还在构建中.
0 请登录后投票
   发表时间:2008-12-21  
caipanjin 写道
最近做毕业设计的时候,在持久层的框架用了iBATIS,而没有用Hibernate,但是写了几个模块之后越来越不爽。在做像高级查询的这种需要连接多张表的操作的时候,由于iBATIS并不是真正意义上的ORM,所以不得不为每一种查询的输入参数和输出参数量身定做各种不伦不类的JavaBean,真不知道把他们搁置在哪个包里面,新建一个bizModel包与持久层的model包并列?而写死了的model层跟数据库表对应的对象看起来很鸡肋,因为事实上,就查询而言,进行单表操作很少。大家是什么看法?


多表联查,分页查询就不该用ibatis,自己找麻烦。
这种东西都要扬长避短,不能用一个玩意实现你所有的要求。
0 请登录后投票
   发表时间:2008-12-21  
前段时间下了个jpetstore , 他用了SqlMapDaoTemplate 来分页 .

楼主有时间看看jpetstore , 很多问题 或 疑惑 应该可以的到答案了.

小弟不才,没使用过ibatis ,不过他的设计模式也是
service + dao, 而ibatis 也提供了 dao 的摸板
0 请登录后投票
   发表时间:2008-12-21   最后修改:2008-12-21
ibatis 查询参数和返回结果不一定要用javabean,可以用Map等来做参数啊.可以看看ibatis提供的jpetstore.如果用了spring可以参考spring的jpetstore.推荐使用abator由数据库表自动产生bean dao 的代码.
0 请登录后投票
   发表时间:2008-12-21  
是你不会变通,如果只是为了查询,传个hashmap就可以
0 请登录后投票
   发表时间:2008-12-21  
过多地定义DTO的情况是可以被避免的:
对于查询参数那块儿,你的parameterClass可以指定为'map',且为了隐藏这一事实,你可以在dao或者repository的具体实现中去构建这个map,而对上层暴露的dao或repository接口只列出具有业务意义的具体查询参数;
对于返回结果那块儿,resultClass完全可以指定成你的domainModel,而不必另外定义DTO,且ibatis也支持自动组装对象树以及延迟加载,具体可查阅文档。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics