sql元素

sql元素

一 作用

MyBatis xml文件中对于重复出现的sql片段可以使用标签提取出来,在使用的地方使用标签引用就行

二 例子

2.1 原始做法

<mapper namespace="com.mapper.RoleMapper">
	<resultMap id="roleMap" type="com.pojo.role">
    	<id property="id" column="id"/>
        <result property="roleName" column="role_name"/>
        <result property="note" column="note"/>
    </resultMap>
    
    <select id="getRole" parameterType="long" resultMap="roleMap">
    	select id, role_name, note from t_role where id = #{id}
    </select>
</mapper>

2.2 现在的做法

<mapper namespace="com.mapper.RoleMapper">
	<resultMap id="roleMap" type="com.pojo.role">
    	<id property="id" column="id"/>
        <result property="roleName" column="role_name"/>
        <result property="note" column="note"/>
    </resultMap>
    
    <sql id="roleCols">
    	id,role_name,note
    </sql>
    
    <select id="getRole" parameterType="long" resultMap="roleMap">
    	select <include refid="roleCols"/> from t_role where id = #{id}
    </select>
</mapper>

还支持出纳底边梁给sql元素

<mapper namespace="com.mapper.RoleMapper">
	<resultMap id="roleMap" type="com.pojo.role">
    	<id property="id" column="id"/>
        <result property="roleName" column="role_name"/>
        <result property="note" column="note"/>
    </resultMap>
    
    <sql id="roleCols">
		${alias}.id, ${alias}.role_name, ${alias}.note
	</sql>
    
    <select id="getRole" parameterType="long" resultMap="roleMap">
    	select 
    		<include refid="roleCols">
    			property name="alias" value="r"/>
   			 </include>
    	from t_role r where id = #{id}
    </select>
</mapper>
<!-- 在include元素中定义了一个命名为alias的变量,其值为SQL中表t_role的别名r,然后sql元素就能够使用这个变量名了-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值