ibatis3的项目使用的Mapping文件使用总结参考(二)

MyBatis中文学习网站的

http://www.mybatis.org/core/zh/integration.html

 

 

 


针对in字句中的数组使用方法
<select id="getCpProfileNamesByIds" resultType="string">
  select name from mega_mis_smpp where id in
  <foreach item="ids" index="index" collection="array" open="(" separator="," close=")">
   #{ids}
  </foreach>
 </select>


针对in字句中的Collection使用方法

存储过程的使用:
 <select id="FactoryNumberDao.getNewFactoryCode" resultMap="BaseResultMap" >
  DECLARE @factoryCode varchar(5)
  EXEC P_Factory_Number
  @factoryCode = @factoryCode OUTPUT
  SELECT @factoryCode as factoryCode
 </select>

Ognl的使用:
 <select id="AreaDao.findByPageArea.count"
  resultType="java.lang.Long">
  SELECT count(*) from gs_area
  <include refid="areaDaoDynamicWhere"/>

 </select>
 
 <sql id="areaDaoDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
  <where>
   <!-- del_flag = '0' -->
   <if test="@Ognl@isNotEmpty(areaCode)">
    and area_code = #{areaCode}
     </if>
   <if test="@Ognl@isNotEmpty(areaName)">
    and area_name like '%${areaName}%'
     </if>
  </where>
 </sql>
sql标签:
 <sql id="Base_Column_List" >
    factory_code, factory_name, factory_user, factory_desc, tel, email, update_time,
    state_flag
  </sql>
  <select id="FactoryDao.selectByPrimaryKey" resultMap="FactoryInfoMap" parameterType="java.lang.String" >
    select
    <include refid="Base_Column_List" />
    from dbo.gs_factory
    where factory_code = #{factoryCode,jdbcType=VARCHAR}
  </select>
 
 
   <select id="LineDao.findByPageLine.count"
  resultType="java.lang.Long">
  SELECT count(*) from gs_line
  <include refid="lineDaoDynamicWhere"/>

 </select>
 
 <sql id="lineDaoDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
  <where>
   <!-- del_flag = '0' -->
   <if test="@Ognl@isNotEmpty(lineCode)">
    and line_code = #{lineCode}
     </if>
   <if test="@Ognl@isNotEmpty(lineName)">
    and line_name like '%${lineName}%'
     </if>
  </where>
 </sql>
 
 
  <sql id="stationTaskReportChartDynamicWhere">
  <!--
   ognl访问静态方法的表达式
   为@class@method(args),以下为调用框架中的Ognl.isNotEmpty()方法,还有其它方法如isNotBlank()可以使用,具体请查看Ognl类
  -->
               <choose>
                      <when test="endDate!=null and startDate!=null">
                         and  g.plan_task_date BETWEEN #{startDate,jdbcType=TIMESTAMP}  AND #{endDate,jdbcType=TIMESTAMP}
                     </when>
                      <when test="endDate==null and startDate!=null">
                         and  g.plan_task_date >= #{startDate,jdbcType=TIMESTAMP}
                     </when>
                       <when test="endDate!=null and startDate==null">
                          <![CDATA[
                             and  g.plan_task_date <= #{startDate,jdbcType=TIMESTAMP}
                           ]]>
                     </when>
                  </choose> 
                  <if test="stationCodeList!=null">
                              and g.station_code in
                             <foreach item="stationCode" index="index" open="(" close=")"  separator="," collection="stationCodeList">
                                  #{stationCode}
                             </foreach>
                  </if>
                   <if test="userCodeList!=null">
                              and g.user_code in
                             <foreach item="userCode" index="index" open="(" close=")"  separator="," collection="userCodeList">
                                  #{userCode}
                             </foreach>
                  </if>
 </sql>
    
trim标签的使用: 
  <insert id="AssetTypeDao.insert" parameterType="com.easyway.eamsg.assetmgt.domain.AssetTypeInfo" >
    insert into dbo.gs_asset_type
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="assetTypeCode != null" >
        asset_type_code,
      </if>
      <if test="assetTypeName != null" >
        asset_type_name,
      </if>
      <if test="assetTypeDesc != null" >
        asset_type_desc,
      </if>
      <if test="natureFlag != null" >
        nature_flag,
      </if>
      <if test="featureFlag != null" >
        feature_flag,
      </if>
      <if test="codingFlag != null" >
        coding_flag,
      </if>
      <if test="matchFlag != null" >
        match_flag,
      </if>
      <if test="updateTime != null" >
        update_time,
      </if>
      <if test="stateFlag != null" >
        state_flag,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="assetTypeCode != null" >
        #{assetTypeCode,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeName != null" >
        #{assetTypeName,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeDesc != null" >
        #{assetTypeDesc,jdbcType=VARCHAR},
      </if>
      <if test="natureFlag != null" >
        #{natureFlag,jdbcType=CHAR},
      </if>
      <if test="featureFlag != null" >
        #{featureFlag,jdbcType=CHAR},
      </if>
      <if test="codingFlag != null" >
        #{codingFlag,jdbcType=CHAR},
      </if>
      <if test="matchFlag != null" >
        #{matchFlag,jdbcType=CHAR},
      </if>
      <if test="updateTime != null" >
        #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="stateFlag != null" >
        #{stateFlag,jdbcType=CHAR},
      </if>
    </trim>
  </insert>
 set标签的使用
 <update id="AssetTypeDao.update" parameterType="com.easyway.eamsg.assetmgt.domain.AssetTypeInfo" >
    update dbo.gs_asset_type
    <set >
      <if test="assetTypeName != null" >
        asset_type_name = #{assetTypeName,jdbcType=VARCHAR},
      </if>
      <if test="assetTypeDesc != null" >
        asset_type_desc = #{assetTypeDesc,jdbcType=VARCHAR},
      </if>
      <if test="natureFlag != null" >
        nature_flag = #{natureFlag,jdbcType=CHAR},
      </if>
      <if test="featureFlag != null" >
        feature_flag = #{featureFlag,jdbcType=CHAR},
      </if>
      <if test="codingFlag != null" >
        coding_flag = #{codingFlag,jdbcType=CHAR},
      </if>
      <if test="matchFlag != null" >
        match_flag = #{matchFlag,jdbcType=CHAR},
      </if>
      <if test="updateTime != null" >
        update_time = #{updateTime,jdbcType=TIMESTAMP},
      </if>
      <if test="stateFlag != null" >
        state_flag = #{stateFlag,jdbcType=CHAR},
      </if>
    </set>
    where asset_type_code = #{assetTypeCode,jdbcType=VARCHAR}
  </update>
 
  存储过程:
   <select id="SiteAssetsSoftWareNumberDao.getNewsiteAssetsSoftwareCode" resultMap="BaseResultMap" parameterType="com.easyway.eamsg.assetmgt.domain.SiteAssetsSoftWareNumbeInfo" >
  DECLARE @siteAssetsSoftwareCode varchar(13)
  EXEC P_Site_Assets_Software_Number
  @stationCode = #{stationCode,jdbcType=VARCHAR},
  @assetTypeCode = #{assetTypeCode,jdbcType=VARCHAR},
  @siteAssetsSoftwareCode = @siteAssetsSoftwareCode OUTPUT
  SELECT @siteAssetsSoftwareCode as siteAssetsSoftwareCode
 </select>
存储过程2:
  <resultMap id="BaseResultMap" type="com.easyway.eamsg.assetmgt.domain.SparePartsNumbeInfo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="remarks" property="remarks" jdbcType="VARCHAR" />
    <result column="sparePartsCode" property="sparePartsCode" jdbcType="VARCHAR" />
  </resultMap>
 
 <select id="SparePartsNumberDao.getNewSparePartsCode" resultMap="BaseResultMap" >
  DECLARE @sparePartsCode varchar(17)
  EXEC P_Spare_Parts_Number
  @sparePartsCode = @sparePartsCode OUTPUT
  SELECT @sparePartsCode as sparePartsCode
 </select> 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值