锁定老帖子 主题:iBATIS如何复用SQL片段(翻译)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-16
早就有这个功能了。而且用起来也非常方便。
|
|
返回顶楼 | |
发表时间:2006-12-21
现在有一个问题:如果要取其他namespace里的SQL,好象不能指定namespace,就象这样会报错,请问谁知道怎么解决?
<sqlMap namespace="common"> <sql id="selectItem_fragment"> FROM items WHERE parentid = 6 </sql> </sqlMap> <sqlMap namespace="test"> <select id="selectItems" resultClass="Item"> SELECT id, name 错误 <include refid="common.selectItem_fragment"/> 正确 <include refid="selectItem_fragment"/> </select> </sqlMap> |
|
返回顶楼 | |
发表时间:2006-12-21
在sqlmap-config中配置useStatementNamespaces="true"就可以了
|
|
返回顶楼 | |
发表时间:2006-12-21
sinokaka 写道 在sqlmap-config中配置useStatementNamespaces="true"就可以了
原先没看到这一块,谢谢了! |
|
返回顶楼 | |
发表时间:2006-12-22
真的是很方便的 在实际中
至于说例子 好像没有几个例子是有意义的 主要就是用最简单的方式让别人明白怎么用就行了 |
|
返回顶楼 | |
发表时间:2007-01-29
<include refid="selectItem_fragment"/>
在这个include里面可不可以放变量,从程序外面传进去 |
|
返回顶楼 | |
发表时间:2007-03-21
我感觉挺有用的,看我的代码
xml 代码
使用的时候include就OK了,如下 xml 代码
|
|
返回顶楼 | |
发表时间:2007-05-20
测试了一下,刚开始没成功,说找不到要include的sql,后来发现我要include的sql放在了xml文件的最后,将他移到最前面就没问题了,所以大家要注意放置的顺序。
|
|
返回顶楼 | |
发表时间:2007-05-21
谁说没用,我们现在就在用这种方法来做记录总数与记录明细的查询条件,节省了不少代码
|
|
返回顶楼 | |
发表时间:2007-05-21
节省代码与提高代码可读性也是把双刃剑,
如果一个xml很大或者id不在一个配置中,你要复用这个id,查找也是一种成本. 并且,好像嵌套做得不好! 比如: select * from (XX) where rownum <= 10 这里的XX到底是放include里还是select里? 一般XX是会变的,肯定是写在select里对应一个ibatis dao方法,那么include就难做了. 它不能传参数,不能嵌套. 比较丑陋的,就是 select * from ( 定义为一个include 而 ) where rownum <= 10定义为另一个include |
|
返回顶楼 | |