锁定老帖子 主题:iBATIS评价
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-09-04
其实我的需求是这样的:
db-->hashmap or xml-->ui; 这样做的好处是,我做一个后台管理器,可以增加修改字段,ui也是可以配置的. 因为我觉得mis系统,需求很难确定,特别是一些企业,传递信息还几乎没有用到计算机,很难确定用户需求什么,就算有一些企业,过了iso认证,有固定的表格,可是,很多时候并没有根据这个iso表格来走,他们觉得iso的不合他门用,我调研过2个企业,实施过1个企业,感觉用户的需求是常变化的,特别是企业不是很配合的时候,调研相当麻烦了.我门现在用的系统,对用户需求的变化,大部分只需要进系统管理配置就可以了. 可是这套系统,bug太多,没有文档,没有经过严格的测试,操作性不有好(没考虑到人性化,操作很烦琐),性能比较差,只有部分部门用上了,所以我认为是失败了. 所以,我想opensource做个玩具.dblayer层,我就马上想到了hibernate了. 可是,hibernate的关键之一就是pojo,如果要增加字段,就要修改pojo了,就得该代码,rebuild,打包等等.还有就是,我的ui是可以随意在后台修改的, 如果用vo,不还得这样调用vo.getXXX(),但是,我不能确定字段显示的顺序,所以 我不能用getXXX这样固定的格式来.然后我就找到了apache的beanutils,但用起来有点怪怪的,不太方便,也不能完全实现我的需求. 如果我用hashmap+ibatis的话,就相当简单了,db-->ibatis-->hashmap. 然后根据xml配置文件,就可以生成webui了.如果增加字段,只需要改ibatis和xml文件就可以了,由于我是用管理工具来修改,于是就变得十分简单方便了. 由于已经数据sql,只用到ibatis的hashmap动态查询\修改\增加功能,学一两天就可以了.我正打算用velocity来生成和维护ibatis的xml文件.ui是用velocity+js(grid),做成公用的.于是,开发变得比较简单了,db-->生成的ibatis文件-->dao-->action+viewhelper-->webui;主要工作重点是dao,action了.这两个工作量也很少的. 用ibatis来做动态查询很容易了.hql也可以做,csdn就有一偏文章,但是不够方便. ps:最近复习高程,这个框架进度比较慢了,为了ui功能强大,还得去学该死的js. 然后最近还打算接一个小项目(私人的哦,打算用xmlhttp来做),但是我的框架还是不断有新的进展,因为ibatis+webwork2+velocity都简单. |
|
返回顶楼 | |
发表时间:2004-09-08
楼上的想法也是我现在想要的
不知道是否可以共享您的心得呢? |
|
返回顶楼 | |
发表时间:2004-11-14
看了大家的讨论,发现一个问题,大家可能是过于集中在一些细节的讨论上了,而忽视了其实每一种技术都有它的长处和短处了
我用ibatis已经很久了,当然也用过比如OJB等一些OR mapping 的东西,但我还是觉得从简单直接快速的角度来说,ibatis还是有它的优越性。 我觉得EJB(session bean)+ibatis+struts 的快速开发组合还是比较经典的 用EJB来控制事务,用ibatis来管理JDBC,用struts来做web 架构,辅以其它的一些j2EE技术,从层次上还是能够分得很清楚。 |
|
返回顶楼 | |
发表时间:2005-02-02
凤舞凰扬 写道 ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。
left/right join才是标准sql的写法,(+)是Oracle自有的。我以前用Oracle的时候就喜欢用left/right join,不爱用(+)。 |
|
返回顶楼 | |
发表时间:2005-02-02
wdhs 写道 凤舞凰扬 写道 ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。
left/right join才是标准sql的写法,(+)是Oracle自有的。我以前用Oracle的时候就喜欢用left/right join,不爱用(+)。 oracle 8I 以下的版本 是不支持join的,只能用(+);9I后才支持SQL92. |
|
返回顶楼 | |
发表时间:2005-02-05
mikecool 写道 iBATIS比较恼火,有时用着用着就火大....,总是想,怎么这么Easy的事情都要我来做 习惯了就好多了 這是物件對於 NULL 處理的模式, 你的需求應該不算是 bug 我設計的系統, NULL 就是 NULL, empty 就是 empty. 如果你不希望取得到 NULL value, 我知道 iBATIS 是屬於 Opensource 大不了你加上 jakarta commons 的 lang, StringUtils 中的 string 處理原則 應該就可以達到你所想要的要求了 |
|
返回顶楼 | |
发表时间:2005-02-05
和我的处理方法差不多,不过NULL和Empty这两个东西,在设计阶段是要考虑清楚地,要不然后面开发的时候处理起来很麻烦,要严格定义。
|
|
返回顶楼 | |
发表时间:2005-02-17
在看了ibaties自带的samples/jpetstore后,给我印象最深刻的就是action了,以前做struts的时候action一堆一堆的,尽管按业务进行了分类,但还是感觉太多不好维护。直到看了ibatis的action实现方法后,才发现原来action也可以只用一个BeanAction来全部搞定。当然这里ibatis的BeanAction配合了ActionContext, FormBean, Service等。
在这个地方我就有个疑问了,BeanAction可以处理现实项目中的所有业务控制需要吗?我在这里真的有点纳闷了。 |
|
返回顶楼 | |
发表时间:2005-02-21
凤舞凰扬 写道 CURD是可以自动生成,也比较容易,可ibatis就没有做,这种也还是需要字段匹配的,关一个工具类,太弱了。
ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。 再一个问题就是当匹配的一个字段为null的时候,必须要在配置文件中设置动态生成sql或者加上默认值,这也太麻烦了吧?一个表单中,限制输入的字段毕竟占少数啊! 当然,也许是我不熟悉吧 left/right join是标准的SQL语法,所以oracle是可以用left/right join的 |
|
返回顶楼 | |
发表时间:2005-02-24
呵呵,没有想到这个帖子还在讨论。
楼上啊,如果你在Oracle8i及前面的版本可以用Left/Right Join的话,我真只能去跳楼了。(唉,不要想当然,自己去试试就知道了) |
|
返回顶楼 | |