论坛首页 Java企业应用论坛

iBATIS评价

浏览 55324 次
锁定老帖子 主题:iBATIS评价
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-08-30  
我想,这里主要的分歧在于,哪些逻辑应该放在数据库中,哪些逻辑在应用程序中。
我的立场是,除了少量的存储过程以外,类似于触发器、默认值之类的东西以及绝大部分的存储过程实现的功能,都应当由程序这一端来控制,而且,是体现在业务逻辑中(不是在ibatis这一层)。像默认值这类东西,就像各位说得那样,是客户的业务决策,那么,为什么要把业务决策的东西放在数据库或者ORM层中,而不是放在业务模型那一层?仅仅因为方便?此时,即便是让数据表中的某个字段为null,也是业务模型"刻意"使它为null,而不是不touch就是null.
在这种策略下,默认值或者null和ibatis并没有太大关系。
关于int值的null和默认情况,我觉得有必要再深入思考一下,它与类似于String在概念上并没有区别,这只是可以java对于性能的一种妥协。如果纯粹OO的话,用Integer来取代,此时,null与非null就会有本质的区别。不能说因为是数值型,就没有null的可能性了,否则,也只能说所使用的工具或者方法制约了概念的建模方式。
0 请登录后投票
   发表时间:2004-08-30  
我以前看过hibernate的文档,感觉它不合适我的需求。
在开发mis中,在实施维护的时候,经常需要增加字段,字缎的数据类型也会修改,如果用hibernate就需要修改代码了。
还有一点就是,mis系统中,在一个列表界面需要很多张表,例如:
销售单里 需要零件,客户,价格,部门,等等,如果用hibernate,
如a.getb.getXX(),对象b的所有字段都从数据库读取出来,那么性能就很差了
。也许通过继承来解决这个问题,但是这样带来的问题也就更多了。
0 请登录后投票
   发表时间:2004-09-03  
iBatis还有一个在做一对多关系查询时出现的N+1的效率问题,不知道各位有什么好的解决方法?
0 请登录后投票
   发表时间:2004-09-03  
neuhawk 写道
我以前看过hibernate的文档,感觉它不合适我的需求。
在开发mis中,在实施维护的时候,经常需要增加字段,字缎的数据类型也会修改,如果用hibernate就需要修改代码了。


数据类型都改变了,你用iBATIS一样要改代码,这就是理由?
neuhawk 写道

还有一点就是,mis系统中,在一个列表界面需要很多张表,例如:
销售单里 需要零件,客户,价格,部门,等等,如果用hibernate,
如a.getb.getXX(),对象b的所有字段都从数据库读取出来,那么性能就很差了
。也许通过继承来解决这个问题,但是这样带来的问题也就更多了。


你还不懂HQL。
0 请登录后投票
   发表时间:2004-09-03  
neuhawk 写道
我以前看过hibernate的文档,感觉它不合适我的需求。
在开发mis中,在实施维护的时候,经常需要增加字段,字缎的数据类型也会修改,如果用hibernate就需要修改代码了。
还有一点就是,mis系统中,在一个列表界面需要很多张表,例如:
销售单里 需要零件,客户,价格,部门,等等,如果用hibernate,
如a.getb.getXX(),对象b的所有字段都从数据库读取出来,那么性能就很差了
。也许通过继承来解决这个问题,但是这样带来的问题也就更多了。


用hibernate你也不用每次都返回一个对象吧?再仔细研究一下hibernate吧。
0 请登录后投票
   发表时间:2004-09-03  
TSS: Using Hibernate3 as a JDBC framework
http://www.theserverside.com/blogs/showblog.tss?id=Hibernate3_JDBC

最近简单看了一下iBatis,我找不到有什么理由要去用它。要说方便的话,好象也不比Hibernate方便。Hibernate在XDoclet的支持下,维护NamedQuery只需要改Java文件就行了;iBatis还得改配置文件呢。
0 请登录后投票
   发表时间:2004-09-03  
我觉得iBATIS比较适合老系统改造工程
不过的确用起来有点麻烦
0 请登录后投票
   发表时间:2004-09-04  
robbin 写道
neuhawk 写道
我以前看过hibernate的文档,感觉它不合适我的需求。
在开发mis中,在实施维护的时候,经常需要增加字段,字缎的数据类型也会修改,如果用hibernate就需要修改代码了。


数据类型都改变了,你用iBATIS一样要改代码,这就是理由?
neuhawk 写道

还有一点就是,mis系统中,在一个列表界面需要很多张表,例如:
销售单里 需要零件,客户,价格,部门,等等,如果用hibernate,
如a.getb.getXX(),对象b的所有字段都从数据库读取出来,那么性能就很差了
。也许通过继承来解决这个问题,但是这样带来的问题也就更多了。


你还不懂HQL。

如果数据类型改了,为什么一定要改代码?
我只要修改配置文件就可以了,数据我放在HashMap.
增加字段也可以这样,修改配置就可以了.
0 请登录后投票
   发表时间:2004-09-04  
gigix 写道
TSS: Using Hibernate3 as a JDBC framework
http://www.theserverside.com/blogs/showblog.tss?id=Hibernate3_JDBC

最近简单看了一下iBatis,我找不到有什么理由要去用它。要说方便的话,好象也不比Hibernate方便。Hibernate在XDoclet的支持下,维护NamedQuery只需要改Java文件就行了;iBatis还得改配置文件呢。

问题是我不想改代码.
0 请登录后投票
   发表时间:2004-09-04  
robbin 写道
neuhawk 写道
我以前看过hibernate的文档,感觉它不合适我的需求。
在开发mis中,在实施维护的时候,经常需要增加字段,字缎的数据类型也会修改,如果用hibernate就需要修改代码了。


数据类型都改变了,你用iBATIS一样要改代码,这就是理由?
neuhawk 写道

还有一点就是,mis系统中,在一个列表界面需要很多张表,例如:
销售单里 需要零件,客户,价格,部门,等等,如果用hibernate,
如a.getb.getXX(),对象b的所有字段都从数据库读取出来,那么性能就很差了
。也许通过继承来解决这个问题,但是这样带来的问题也就更多了。


你还不懂HQL。

我看过hibernate文档,当时javaeye还没有成立,hibernate还没有中文文档,网上资料很少.我看hql总是有点不喜欢,特别是设计一个综合查询的时候,(where 后的字段不确定).用hql有点麻烦了.
0 请登录后投票
论坛首页 Java企业应用版

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