insert into yourtable
<dynamic prepend="(">
<isNotNull prepend="," property="logonName">
LOGON_NAME
</isNotNull>
</dynamic>
) values
<dynamic prepend="(">
<isNotNull prepend="," property="logonName">
#logonName#
</isNotNull>
</dynamic>
)
<dynamic prepend="(">
<isNotNull prepend="," property="logonName">
LOGON_NAME
</isNotNull>
</dynamic>
) values
<dynamic prepend="(">
<isNotNull prepend="," property="logonName">
#logonName#
</isNotNull>
</dynamic>
)
解决方案 »
- 一张表里面,设一个主键在加一个外键,把外键指向主键可行?
- weblogic上调用iBatis出现问题
- 如何下载struts和编译struts源码
- 请问Eclipse ,tomcat,jboss等软件是用JAVA写的吗?都运行在JVM之上吗?
- JGF是什么东西
- 请各位高手看看这是什么错误!
- STRUTS下,验证SESSION的标签编写.
- 怎样设置JTable中一个单元格为当前选中的单元格?
- struts的问题:Struts中的properties文件中我用了着样一句logon.jsp.page.heading=你好!
- 关于CMP的relationship
- proxool问题
- hql中top怎么用?
<![CDATA[select * from (select myTable.*,rownum as rn from (select * from APP_SYS) myTable where rownum < #end#) where rn >= #start#]]>
<!--这里的select语句是分页的,在java代码传入end,start参数-->
<!--如果先不分页(select * from 表名)就ok了 -->
<dynamic prepend="WHERE">
<isParameterPresent>
<isPropertyAvailable property="sysId">
<isNotNull prepend="AND" property="sysId">
SYS_ID = #sysId#)
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable property="userCode">
<isNotNull prepend="AND" property="userCode">
USER_CODE = #userCode#)
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable property="server">
<isNotNull prepend="AND" property="server">
SERVER = #server#)
</isNotNull>
</isPropertyAvailable>
<isPropertyAvailable property="dbName">
<isNotNull prepend="AND" property="dbName">
DB_NAME = #dbName#)
</isNotNull>
</isPropertyAvailable>
</isParameterPresent>
</dynamic>
</select>
where $condition$这样似乎也可以
虽然动态Mapped Statement API功能强大,但有时仅需要一小部分的动态SQL即可。为此,SQL statement和statement都可以包含简单的动态SQL元素,以帮助实现动态的order by子句,动态的查询字段或SQL语句的其他动态部分。简单动态SQL元素的概念有点象inline parameter的映射,但使用了稍微不同的语法。考虑下面的例子:
<statement id=”getProduct” resultMap=”get-product-result”>
select * from PRODUCT order by $preferredOrder$
</statement>
上面的例子中,preferredOrder动态元素将被参数对象的preferredOrder属性值替换(象parameter map一样)。不同的是,它从根本上改变了SQL语句本身,比仅仅简单地改变参数值严重得多。在这样的动态SQL语句中,错误可能会引起安全,性能和稳定性的风险。因此,应细心检查,以确保简单动态SQL元素使用的正确。另外,还要留意您的设计,以防数据库细节对业务逻辑对象模型造成不好的影响。例如,您不应因为要使用order by子句,而将一个数据字段名作为业务对象的属性,或作为JSP页面的一个域的值。
简单动态元素可以包含在<dynamic-mapped-statement>中,当要修改SQL语句本身时它开发指南 iBATIS SQL Maps Page 45 of 62
能派上用场。例如:
<statement id=”getProduct” resultMap=”get-product-result”>
SELECT * FROM PRODUCT
<dynamic prepend=”WHERE”>
<isNotEmpty property=”description”>
PRD_DESCRIPTION $operator$ #description#
</isNotEmpty>
</dynamic>
</statement>
上面的例子中,参数对象的operator属性将用于替代符号$operator$。因此,假如operator属性等于“like”,description属性等于“%dog%”,生成的SQL语句如下:
SELECT * FROM PRODUCT WHERE PRD_DESCRIPTION LIKE ‘%dog%’
pass:找找这本书http://www.ibatis.com Clinton Begin 著 刘涛([email protected]) 译
我也在学习用这个
SELECT * FROM PRODUCT
<dynamic prepend=”WHERE”>
<isNotEmpty property=”description”>
PRD_DESCRIPTION $operator$ #description#
</isNotEmpty>
</dynamic>
</statement>这个看的头疼, 貌似是不太好的发明