当前位置: 代码迷 >> ASP.NET >> iBatis中一个书写sql有关问题,你们是怎么办的
  详细解决方案

iBatis中一个书写sql有关问题,你们是怎么办的

热度:9242   发布时间:2013-02-25 00:00:00.0
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包含


还有一种方法是用存储过程分页动态查询

  相关解决方案