ibatis一些使用小记

数据库用mysql

1,首先区分下#和$的区别:

#:自动类型匹配,常见类型int、string

$:一般两种用法,一种是匹配int类型的参数,一种是传入sql语句部分(所以有sql注入风险)

以下为几种经典用法:

①,in和or语句(如果建立索引,两者性能差不多;否则or语句性能大大降低):

        <iterate property="itemIds" open="(" close=")" conjunction="or" prepend="and">
            itemid = #itemIds[]#
        </iterate>
        // 解析为or语句
或:
        itemid in
        <iterate property="itemIds" open="(" close=")" conjunction=",">
             #itemIds[]#
        </iterate>
        // 标准in语句
或:    itemid in ($idsStr$)// 此处idsStr格式为1,2,3...

②比较大小的where语句(不仅仅是日期的比较,只要包含>、<、&号的语句都需要转义&gt; &lt; &amp;,验证xml的合法性,不过用<![CDATA[ ]]>就不需要了。同时注意此符号的使用范围,避免包裹在标签语句之外):

        <![CDATA[
            and insert_date >= #startDate# and insert_date < date_add(#endDate#, INTERVAL 1 DAY)
        ]]>


你可能感兴趣的:(ibatis一些使用小记)