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)

<?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>  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值