iBatis中一个书写sql问题,你们是怎么处理的
写sql分页查询时,要写2个sql,一个是统计总数,一个是写取分页的具体记录
如:
<select id="GetTaskCount" parameterClass="Task" resultMap="Task">
select count(1) from tasks
<dynamicprepend="where">
<isNotNull property="taskname" prepend="and">
tasknamee=#taskname#
</isNotNull>
.....
这里有很多条件,有10多个条件
</dynamic>
</select>
<select id="GetTaskPageList" parameterClass="Task" resultMap="Task">
这里是分页查询的sql
<dynamicprepend="where">
<isNotNull property="taskname" prepend="and">
tasknamee=#taskname#
</isNotNull>
.....
这里有很多条件,有10多个条件
</dynamic>
</select>
这两条sql的条件是完全一样的,条件又要重复复制一遍
你们是怎么处理的呢,有办法这两条sql语句重复条件部分吗
------解决方案--------------------
--这里是N多条件
<sql id="selectItem_fragment">
FROM items
WHERE parentid = #value#
</sql>
<select id="selectItems" resultClass="Item">
SELECT id, name
<include refid="selectItem_fragment"/>
</select>
用include包含
还有一种方法是用存储过程分页动态查询