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>