首页 > 代码库 > mybatis公用代码抽取到单独的mapper.xml文件
mybatis公用代码抽取到单独的mapper.xml文件
同任何的代码库一样,在mapper中,通常也会有一些公共的sql代码段会被很多业务mapper.xml引用到,比如最常用的可能是分页和数据权限过滤了,尤其是在oracle中的分页语法。为了减少骨架性代码,通常将它们抽象到sql中,但是肯定又不能在每个mapper中也包含,这样就没有意义了。此时,可以将这部分移到专门的mapper.xml中,比如common.xml,其中包含如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="Common"> <sql id="Common.pagingStart">
</sql> <sql id="Common.pagingEnd"> <![CDATA[ limit #{startWith,jdbcType=INTEGER},#{rows,jdbcType=INTEGER} ]]> </sql> </mapper>
然后在具体的mapper.xml可以通过namespace进行引用,如下:
<select id="queryPage" resultMap="clientPage" parameterType="java.util.Map"> <include refid="Common.pagingStart"/> <include refid="commonSelect"/> <!-- 这里有个额外的1是为了避免额外处理最后一个”,“ --> 1 <include refid="commonFrom"/> <include refid="commonWhere"/> <if test="clientId != null" > and CLIENT_ID = #{clientId,jdbcType=VARCHAR} </if> <if test="clientName != null" > and CLIENT_NAME like ‘%${clientName}‘ </if> <if test="telephone != null" > and TELEPHONE = #{telephone,jdbcType=VARCHAR} </if> order by client_id <include refid="Common.pagingEnd"/> </select>
mybatis公用代码抽取到单独的mapper.xml文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。