基于mybatis的动态条件分页查询

public class BaseDao{
  private SqlSessionTemplate session;
  /**
  * 分页查询
  * @param listSql 当前页数据的SQL
  * @param countSql 总条数SQL
  * @param queryMap 动态条件
  * @param pageNO 页码
  * @param pageCount 每页显示条数
  * @return
  * @throws Exception
  */
public CutPageBean cutPage(String listSql,String countSql,Map queryMap,int pageNO,int       pageCount)throws Exception{

CutPageBean bean = new CutPageBean();
//起始条数
queryMap.put("start", (pageNO-1)*pageCount);
//每页显示条数
queryMap.put("pageCount", pageCount);
//查询当前页数据
List list = this.getSession().selectList(listSql,queryMap);
bean.setList(list);
//查询总条数 
int count =this.getClient()
             .selectOne(countSql,queryMap);
bean.setCount(count);


}

mybatis支持动态SQL拼接,通过include标签可以链接指定的sql标签

<select id="cutFindAllUser" resultType="user">
   select * from t_user where 1=1
  <include refid="dynaUserSql"/>
  limit #{start},#{pageCount};
  </select>

  <select id="countUser" resultType="int">
  select count(*) from t_user where 1=1
  <include refid="dynaUserSql"/> ;
</select>

<sql id="dynaUserSql">
  <if test="userName != null and userName != ''">
  and userName like '%${userName}%'
  </if>
  <if test="birthday != null">
  <![CDATA[
  and birthday > #{birthday}
  ]]>
  </if>
  </sql>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值