提取sql共性代码,使用标签sql和inclue

本文探讨如何在代码中识别并提取相同的SQL查询条件,通过使用标签和include机制,实现SQL代码的复用,提高代码维护性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码中的查询条件是一样的可以提取出来

<select id="getRowCount"
		resultType="int">
	select count(*)
	from sys_logs
	<where>
		<if test="username!=null and username!=''">
		where username like concat("%",#{username},"%")
		</if>
	</where>
	</select>
	<select id="findPageObjects" 
		resultType="com.cy.pj.sys.entity.SysLog">
	select * 
	from sys_logs
	<where>
		<if test="username!=null and username!=''">
		where username like concat("%",#{username},"%")
		</if>
	</where>
	order by createdTime desc
	limit #{start Index},#{pageSize}
	</select>

修改后:

<select id="getRowCount"
		resultType="int">
	select count(*)
	from sys_logs
	<include refid="queryWhereId"/>
	</select>
	<select id="findPageObjects" 
		resultType="com.cy.pj.sys.entity.SysLog">
	select * 
	from sys_logs
	<include refid="queryWhereId"/>
	order by createdTime desc
	limit #{start Index},#{pageSize}
	</select>
	
	<sql id="queryWhereId">
		<where>
			<if test="username!=null and username!=''">
			where username like concat("%",#{username},"%")
			</if>
		</where>
	</sql>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值