论坛首页 Java企业应用论坛

iBATIS评价

浏览 55325 次
锁定老帖子 主题: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都简单.
0 请登录后投票
   发表时间:2004-09-08  
楼上的想法也是我现在想要的
不知道是否可以共享您的心得呢?
0 请登录后投票
   发表时间:2004-11-14  
看了大家的讨论,发现一个问题,大家可能是过于集中在一些细节的讨论上了,而忽视了其实每一种技术都有它的长处和短处了
我用ibatis已经很久了,当然也用过比如OJB等一些OR mapping 的东西,但我还是觉得从简单直接快速的角度来说,ibatis还是有它的优越性。
我觉得EJB(session bean)+ibatis+struts 的快速开发组合还是比较经典的
用EJB来控制事务,用ibatis来管理JDBC,用struts来做web 架构,辅以其它的一些j2EE技术,从层次上还是能够分得很清楚。
0 请登录后投票
   发表时间:2005-02-02  
凤舞凰扬 写道
ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。

left/right join才是标准sql的写法,(+)是Oracle自有的。我以前用Oracle的时候就喜欢用left/right join,不爱用(+)。
0 请登录后投票
   发表时间: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.
0 请登录后投票
   发表时间:2005-02-05  
mikecool 写道

iBATIS比较恼火,有时用着用着就火大....,总是想,怎么这么Easy的事情都要我来做 习惯了就好多了


這是物件對於 NULL 處理的模式, 你的需求應該不算是 bug
我設計的系統, NULL 就是 NULL, empty 就是 empty.

如果你不希望取得到 NULL value,
我知道 iBATIS 是屬於 Opensource
大不了你加上 jakarta commons 的 lang, StringUtils 中的 string 處理原則
應該就可以達到你所想要的要求了
0 请登录后投票
   发表时间:2005-02-05  
和我的处理方法差不多,不过NULL和Empty这两个东西,在设计阶段是要考虑清楚地,要不然后面开发的时候处理起来很麻烦,要严格定义。
0 请登录后投票
   发表时间:2005-02-17  
在看了ibaties自带的samples/jpetstore后,给我印象最深刻的就是action了,以前做struts的时候action一堆一堆的,尽管按业务进行了分类,但还是感觉太多不好维护。直到看了ibatis的action实现方法后,才发现原来action也可以只用一个BeanAction来全部搞定。当然这里ibatis的BeanAction配合了ActionContext, FormBean, Service等。

在这个地方我就有个疑问了,BeanAction可以处理现实项目中的所有业务控制需要吗?我在这里真的有点纳闷了。
0 请登录后投票
   发表时间:2005-02-21  
凤舞凰扬 写道
CURD是可以自动生成,也比较容易,可ibatis就没有做,这种也还是需要字段匹配的,关一个工具类,太弱了。
   ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。
   再一个问题就是当匹配的一个字段为null的时候,必须要在配置文件中设置动态生成sql或者加上默认值,这也太麻烦了吧?一个表单中,限制输入的字段毕竟占少数啊!
     当然,也许是我不熟悉吧


left/right join是标准的SQL语法,所以oracle是可以用left/right join的
0 请登录后投票
   发表时间:2005-02-24  
呵呵,没有想到这个帖子还在讨论。
   楼上啊,如果你在Oracle8i及前面的版本可以用Left/Right Join的话,我真只能去跳楼了。(唉,不要想当然,自己去试试就知道了)
0 请登录后投票
论坛首页 Java企业应用版

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