锁定老帖子 主题:iBATIS评价
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-08-21
前一段用了一下ibatis,发觉实在难用,后来干脆自己写了一个,感觉比它好用些。 现在又有了dudoj,呵呵,还支持函数,针对复杂查询,不错,看看先 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-08-21
ibatis相对贴近sql一点。不过不算太难用啊(前提是以前没有用过hibernate,hehe,风格上有很大不同)。
好像过段时间ibatis就要加入apache了,但愿不要像tapestry,到了那儿就开始忙别的了 |
|
返回顶楼 | |
发表时间:2004-08-22
我觉得ibatis难用是这样几个方面,第一就是它的sqlMap连基本的CURD的Mapping都不支持,都必须要自己写,麻烦了。第二就是它的配置文件写起来很麻烦,比如说,一不能自动识别null(就是匹配的字段不能为null,要么就必须为其设置当是null时的默认值),二,对于Oracle数据库不支持(+),也就是不清楚在Oracle数据库下怎么写带有左右连接的SQL语句。三,虽然说它是JDBC的轻量级封装,但是它的配置文件中的SQL语句的写法和JDBC又略有不同,实在不解当时参数不用?而用## .。四,ibatis的DAO框架必须要继承它的基类,传入DaoManager接口,这比较烦躁,实在不好与原有系统挂接。
|
|
返回顶楼 | |
发表时间:2004-08-24
我也试用过iBATIS,不过我觉得不如直接使用JDBC好
spring对jdbc的封装非常好 我在DAO中要做的,只是写SQL,再写resultset中提取数据的代码,这个工作量并不大(大部分是copy&paste)。虽然sql写死在代码中了,但所有要变动的东西都在一个类里,修改起来也不麻烦。 |
|
返回顶楼 | |
发表时间:2004-08-25
1:基本的crud sql可以自动生成的阿,自己稍微写个工具类就是了
3:不明白用##有什么不妥的 |
|
返回顶楼 | |
发表时间:2004-08-25
CURD是可以自动生成,也比较容易,可ibatis就没有做,这种也还是需要字段匹配的,关一个工具类,太弱了。
ibatsi的另一个问题就是,怎么在配置文件的SQL中表示oracle的左右链接呢?oracle的左右链接是用(+)来表示的,不是用left/right join,如果直接这么写(+),会错,搞不懂该怎么写。 再一个问题就是当匹配的一个字段为null的时候,必须要在配置文件中设置动态生成sql或者加上默认值,这也太麻烦了吧?一个表单中,限制输入的字段毕竟占少数啊! 当然,也许是我不熟悉吧 |
|
返回顶楼 | |
发表时间:2004-08-26
他说的第二个问题还没发现。
|
|
返回顶楼 | |
发表时间:2004-08-26
crud确实比较烦。不过有时候倒也能控制得更加精准一点。
不过那个默认值,我觉得肯定有个地方要体现出来。或者在model层,或者在ibatis。不过,这个问题可能我没明白你的意思。 但是那个DaoManager我倒是从来不用,只用spring封装的,hehe |
|
返回顶楼 | |
发表时间:2004-08-26
的确如此,如果是null的话,插数据会出错的,不爽
|
|
返回顶楼 | |
发表时间:2004-08-26
这种情况我都会在model那一层解决的。即便数据库允许null,在model中我不允许有空值存在。否则在语义和完整性上太冒险了。
所以如果插入的话,经由中间一转,肯定是有值的。 |
|
返回顶楼 | |