Ibatis中xml文件的常用配置

1、<iterate>:这属性遍历整个集合,并为List集合中的元素重复元素体的内容。
    Iterate的属性:
    prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
    property - 类型为java.util.List的用于遍历的元素(必选)
    open - 整个遍历内容体开始的字符串,用于定义括号(可选)
    close -整个遍历内容体结束的字符串,用于定义括号(可选)
        conjunction - 每次遍历内容之间的字符串,用于定义AND或OR(可选)

    <iterate prepend=”AND” property=”userNameList” open=”(” close=”)” conjunction=”OR”> username=#userNameList[]# </iterate> = and    (username=name1 or     username=name2...)



    注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将List输出成String。

2、一元条件元素的属性:
    prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
        property - 被比较的属性(必选) 
    
    <isPropertyAvailable>  检查是否存在该属性(存在parameter bean的属性)。   
    <isNotPropertyAvailable>  检查是否不存在该属性(不存在parameter bean的属性)。   
    <isNull>  检查属性是否为null。   
    <isNotNull>  检查属性是否不为null。   
    <isEmpty>  检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或        空(“”或size() < 1)。   
    <isNotEmpty>  检查Collection.size()的值,属性的String或String.valueOf()值,是否不为        null或不为空(“”或size() > 0)。
    
    例子:
    <isNotEmpty prepend=”AND” property=”firstName” >
    FIRST_NAME=#firstName#
    </isNotEmpty>

3、下面是一个简单的例子(News.xml)

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >  
  3. <sqlMap namespace="News">  
  4.       
  5.     <!-- 定义别名,为要映射的包.类名,定义一个别名,方便使用 -->  
  6.     <typeAlias alias="News" type="com.lewis.News" />  
  7.       
  8.     <!-- 定义公共常量 -->  
  9.     <sql id="selectSql">  
  10.     <![CDATA[  
  11.     SELECT ID,  
  12.        TITLE,  
  13.        CONTENT,  
  14.        CREATETIME  
  15.     FROM NEWS   
  16.     ]]>  
  17.     </sql>  
  18.   
  19.     <!-- 按指定的ID集合查询 -->  
  20.     <select id="getByIds" parameterClass="java.util.List"  
  21.         resultClass="News">  
  22.         <include refid="selectSql" />  
  23.         <dynamic>  
  24.             <iterate open="WHERE ID IN (" close=")" conjunction=",">  
  25.                 #list[]#   
  26.     </iterate>  
  27.         </dynamic>  
  28.     </select>  
  29.       
  30.     <!-- 按某一个Id查找 -->  
  31.     <select id="get" parameterClass="java.lang.String" resultClass="News">  
  32.         <include refid="selectSql" />  
  33.         WHERE ID=#value#  
  34.     </select>  
  35.       
  36.     <!-- 查找数量 -->  
  37.     <sql id="selectCountSql">  
  38.         SELECT COUNT(ID) FROM NEWS  
  39.     </sql>  
  40.       
  41.     <!-- 查找所有news -->  
  42.     <select id="searchNewsList" resultClass="News">  
  43.         <include refid="selectSql" />  
  44.         ORDER BY TITLE   
  45.     </select>  
  46.       
  47.     <!-- 添加操作 -->  
  48.     <insert id="insert" parameterClass="News">  
  49.         INSERT INTO NEWS(  
  50.         ID  
  51.         <dynamic prepend="">  
  52.             <isNotNull prepend="," property="title">  
  53.                 TITLE   
  54.                </isNotNull>  
  55.             <isNotNull prepend="," property="content">  
  56.                 CONTENT   
  57.                </isNotNull>  
  58.             <isNotNull prepend="," property="createtime">  
  59.                 CREATETIME   
  60.             </isNotNull>  
  61.         </dynamic>  
  62.         )  
  63.         VALUES(  
  64.         #id#  
  65.         <dynamic prepend="">  
  66.             <isNotNull prepend="," property="title">  
  67.                 TITLE   
  68.                </isNotNull>  
  69.             <isNotNull prepend="," property="content">  
  70.                 CONTENT   
  71.                </isNotNull>  
  72.             <isNotNull prepend="," property="createtime">  
  73.                 CREATETIME   
  74.             </isNotNull>  
  75.         </dynamic>  
  76.         )  
  77.     </insert>  
  78.       
  79.     <!-- 删除操作 -->  
  80.     <delete id="delete" parameterClass="java.lang.String">  
  81.         DELETE FROM NEWS  
  82.         WHERE ID  
  83.         = #value#   
  84.     </delete>  
  85.       
  86.     <!-- 更新操作 -->  
  87.     <update id="update" parameterClass="News">  
  88.         UPDATE NEWS  
  89.         <dynamic prepend="set">  
  90.             <isNotNull prepend="," property="title">  
  91.                 TITLE = #title#  
  92.             </isNotNull>  
  93.             <isNotNull prepend="," property="content">  
  94.                 CONTENT = #content#  
  95.             </isNotNull>  
  96.             <isNotNull prepend="," property="createtime">  
  97.                 CREATETIME = #createtime#  
  98.             </isNotNull>  
  99.         </dynamic>  
  100.         WHERE ID = #Id#  
  101.     </update>  
  102. </sqlMap>    
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值