MyBatis 手册动态,存储过程、增、删、改语句

利用数据库内部对象来查取,表相关列、属性 实现动态组装sql语句。
<!-- 动态存储过程 -->
<insert id="exeDynamicProcedure" statementType="CALLABLE" parameterType="java.util.Map">
         <![CDATA[ {call ]]><if test="owner!=null">${owner}.</if>
         <![CDATA[${objName}(]]>
         <foreach collection="tags" item="tag" index="ind" separator=",">
          <choose>
           <when test=" tag.peModel==1 ">#{tag.col_values,mode=IN,jdbcType=${tag.peTypeStr}}</when>
           <when test=" tag.peModel==0" >#{${tag.pe_col_name_lower},mode=OUT,jdbcType=${tag.peTypeStr}}</when>
          </choose>
         </foreach>
        <![CDATA[ )}]]>
  </insert>
 
<!-- 动态更新 -->
     <update id="exeDynamicUpdate" parameterType="java.util.Map" >
      update <if test="owner!=null">${owner}.</if>${objName}
   <set>
         <foreach collection="tags" item="tag" index="ind" separator=",">
          ${tag.pe_col_name}=#{tag.col_values,jdbcType=${tag.peTypeStr}}
         </foreach>
         </set>
         <where>
          <foreach collection="wheres" item="tag" index="ind" separator="and">
          ${tag.pe_col_name}=#{tag.col_values,jdbcType=${tag.peTypeStr}}
         </foreach>
         </where>
     </update>
    
<!-- 动态删除 -->
     <delete id="exeDynamicDelete" parameterType="java.util.Map" >
      delete <if test="owner!=null">${owner}.</if>${objName}
         <where>
          <foreach collection="wheres" item="tag" index="ind" separator="and">
          ${tag.pe_col_name}=#{tag.col_values,jdbcType=${tag.peTypeStr}}
         </foreach>
         </where>
     </delete>
     
     
<!-- 动态新增 -->
     <insert id="exeDynamicInsert" parameterType="java.util.Map" >
      insert into <if test="owner!=null">${owner}.</if>${objName}(
       <foreach collection="tags" item="tag" index="ind" separator=",">
        ${tag.pe_col_name}
         </foreach>
      )values(
       <foreach collection="tags" item="tag" index="ind" separator=",">
        #{tag.col_values,jdbcType=${tag.peTypeStr}}
         </foreach>
      )
     </insert>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值