博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ibatis中xml文件的常用配置
阅读量:4619 次
发布时间:2019-06-09

本文共 3139 字,大约阅读时间需要 10 分钟。

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>

 

  <?xml version="1.0" encoding="UTF-8" ?> 

  <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" > 

  <sqlMap namespace="News">   

      <!-- 定义别名,为要映射的包.类名,定义一个别名,方便使用 --> 
      <typeAlias alias="News" type="com.lewis.News" />     
      <!-- 定义公共常量 -->   
      <sql id="selectSql"> 
      <![CDATA[   
      SELECT ID,   
         TITLE, 
         CONTENT,   
         CREATETIME   
       FROM NEWS  
      ]]>   
      </sql> 
  
    <!-- 按指定的ID集合查询 --> 
    <select id="getByIds" parameterClass="java.util.List"  
        resultClass="News"> 
        <include refid="selectSql" />   
        <dynamic> 
            <iterate open="WHERE ID IN (" close=")" conjunction=","> 
                #list[]#    
    </iterate> 
        </dynamic>   
    </select>   
     
    <!-- 按某一个Id查找 --> 
    <select id="get" parameterClass="java.lang.String" resultClass="News"> 
        <include refid="selectSql" />   
        WHERE ID=#value# 
    </select>   
       
    <!-- 查找数量 --> 
    <sql id="selectCountSql"> 
        SELECT COUNT(ID) FROM NEWS   
    </sql>   
     
    <!-- 查找所有news --> 
    <select id="searchNewsList" resultClass="News"> 
        <include refid="selectSql" />   
        ORDER BY TITLE  
    </select>   
       
    <!-- 添加操作 --> 
    <insert id="insert" parameterClass="News"> 
        INSERT INTO NEWS(   
        ID 
        <dynamic prepend=""> 

        <isNotNull prepend="," property="title">TITLE </isNotNull>

     <isNotNull prepend="," property="content">  CONTENT </isNotNull> 
            <isNotNull prepend="," property="createtime"> CREATETIME </isNotNull> 
        </dynamic>   
        )   
        VALUES( 
        #id#   
        <dynamic prepend=""> 
            <isNotNull prepend="," property="title"> TITLE </isNotNull> 
            <isNotNull prepend="," property="content"> CONTENT </isNotNull> 
            <isNotNull prepend="," property="createtime"> CREATETIME  </isNotNull> 
        </dynamic> 

  )   

    </insert> 
  
    <!-- 删除操作 --> 
    <delete id="delete" parameterClass="java.lang.String"> 
        DELETE FROM NEWS   
        WHERE ID   
        = #value#  
    </delete>

<!-- 更新操作 -->   

    <update id="update" parameterClass="News"> 
        UPDATE NEWS   
        <dynamic prepend="set"> 
            <isNotNull prepend="," property="title"> TITLE = #title# </isNotNull> 
            <isNotNull prepend="," property="content"> CONTENT = #content# </isNotNull> 
            <isNotNull prepend="," property="createtime"> CREATETIME = #createtime# </isNotNull>   
        </dynamic> 
        WHERE ID = #Id#   
    </update>   
</sqlMap>

 

转载于:https://www.cnblogs.com/ataosoft/archive/2013/05/11/Ibatis.html

你可能感兴趣的文章
python内置下载服务器
查看>>
CDH部署StreamSets
查看>>
AutoParamOptimizer开发日志 9.9 old
查看>>
iOS 上传多个文件
查看>>
如何gif图片转data?完整解决
查看>>
获取手机的网络类型
查看>>
iOS手写签批
查看>>
for...in... 循环 处理一组按钮的选中状态变动
查看>>
python 函数(function)、函数(def)、函数(return)
查看>>
Python 总结题目
查看>>
Gym100212C Order-Preserving Codes
查看>>
TC1570 DesertWind
查看>>
ARC076F Exhausted
查看>>
TC10738 TheContest
查看>>
bzoj4754 [JSOI2016]独特的树叶
查看>>
多校2019 Contest 2 hdu6602 Longest Subarray
查看>>
CF277D Google Code Jam
查看>>
Redis相关面试题
查看>>
LeetCode 1101. The Earliest Moment When Everyone Become Friends
查看>>
LeetCode 1135. Connecting Cities With Minimum Cost
查看>>