spring cloud框架下XML文件的编写

所有的都写在<mapper>标签里面。namespace属性里写mapper里的名字

<mapper namespace="com.data.xuqi.duc.basic.mapper.DrugReportMapper" >
</mapper>

一、

<sql id="BaseColumn">
  XH,DRUG_XM,C_DQGKDW,DRUG_SFZHM,DRUG_CITY,DRUG_AREA,DRUG_SJJZDXZ,DUC_XM,DUC_CH,DUC_TYPE,DUC_CITY,DUC_AREA,DUC_SJJZDXZ,DUC_TEL,XSDPZL,BZ,USERID,DUC_XH,DWDM,DJR,DJPC,ENABLED,MODIFYDATE,CREATEDATE
</sql>
<include refid="BaseColumn"/>

用<sql>标签id属性来定义常用sql语句段,在<include>标签内用refid属性啦调用

二、用#{}内加变量名来获取变量值。如:#{id}

三、模糊查询:

1.在不知道用户要搜索什么的时候可以用一个值去匹配所有列的值(查询所有相匹配的值)

<select id="selectList" resultMap="BaseResultMap">
  SELECT
    *
  FROM table where 1=1
  <if test="search != null and search.trim() != ''">
  AND (DRUG_XM LIKE CONCAT('%' , #{search} , '%')
  OR C_DQGKDW LIKE CONCAT('%' , #{search} , '%')
  OR DRUG_SFZHM LIKE CONCAT('%' , #{search} , '%')
  OR DUC_XM LIKE CONCAT('%' , #{search} , '%')
  OR DUC_CH LIKE CONCAT('%' , #{search} , '%')
  OR DUC_TYPE LIKE CONCAT('%' , #{search} , '%')
  OR DUC_CITY LIKE CONCAT('%' , #{search} , '%')
  OR DUC_AREA LIKE CONCAT('%' , #{search} , '%')
  OR DUC_SJJZDXZ LIKE CONCAT('%' , #{search} , '%')
  OR DUC_TEL LIKE CONCAT('%' , #{search} , '%')
  OR XSDPZL LIKE CONCAT('%' , #{search} , '%')
  OR BZ LIKE CONCAT('%' , #{search} , '%')
  OR DJR LIKE CONCAT('%' , #{search} , '%')
  OR DJPC LIKE CONCAT('%' , #{search} , '%'))
  </if>
  AND ENABLED = 1
</select>

2.拼接字符串:CONCAT('%' , #{name} , '%')

3.在某些时候要验证某一条件是否存在,或者是否是第一个用where 1=1 <if>

<if test="cDqgkdw != null and cDqgkdw.trim() != ''">
  C_DQGKDW = #{cDqgkdw},
</if>

4.编辑功能  用<set>标签来分开每一个字段  最后加MODIFYDATE = now();如下:

<!-- 通过序号更新数据 -->
<update id="update">
  UPDATE T_DUC_DYJBINFO
    <set>
      <if test="djpc != null and djpc.trim() != ''">
        DJPC = #{djpc},
      </if>
      <if test="drugXm != null and drugXm.trim() != ''">
        DRUG_XM = #{drugXm},
      </if>
      <if test="cDqgkdw != null and cDqgkdw.trim() != ''">
        C_DQGKDW = #{cDqgkdw},
      </if>
      MODIFYDATE = now()//当前时间
    </set>
  WHERE 1=1
    AND XH = #{xh}
</update>

5.在xml中sql语句里获取当前时间:now()

6.结果集映射

写在<resultMap>标签里面,id属性名字为该结果集名字,在查询标签里用resultMap绑定。type是entity文件中的类名

<resultMap id="BaseResultMap" type="com.data.xuqi.duc.basic.entity.DrugReport" >
  <!--
    WARNING - @mbg.generated
  -->
  <id column="XH" property="xh" jdbcType="VARCHAR" />
  <result column="DRUG_XM" property="drugXm" jdbcType="VARCHAR" />
</resultMap>

7.