Mybatis的分页查询

Mybatis的分页查询

(1)无条件的分页

mapper文件配置和Java代码实现

<!-- 传入的参数类型为map,此时无需使用map.get("key")去获得实际值,只需填入key值便可 -->
    <select id="findByPage" parameterType="map" resultMap="studentMap">
        select id,name,age,sex from student
        limit #{start},#{end}
    </select>
/*
     * 无条件分页查询
     */
    public List<Student> findByPage(int start,int end)
    {
        SqlSession sqlSession = null;
        try{
            sqlSession = MyBatisUtil.getSqlSession();
            
            Map<String,Object> param = new LinkedHashMap<String,Object>();
            param.put("start",start);
            param.put("end",end);
            
            List<Student> stuList;
            stuList = sqlSession.selectList(Student.class.getName()+".findByPage", param);
            
            System.out.println("添加查询成功");
            
            return stuList;
        }catch(Exception e){
            e.printStackTrace();
            throw e;
        }finally{
            MyBatisUtil.closeSqlSession();
        }
    }

(2)有条件的分页

mapper文件配置和Java代码实现

<select id="findByPageAndRequest" parameterType="map" resultMap="studentMap">
        select id,name,age,sex from student
        where name like #{name}
        limit #{start},#{end}
    </select>

 

/*
     * 有条件分页查询
     */
    public List<Student> findByPageAndRequest(String name,int start,int end)
    {
        SqlSession sqlSession = null;
        try{
            sqlSession = MyBatisUtil.getSqlSession();
            Map<String,Object> params = new LinkedHashMap<String,Object>();
            //当sql的条件有模糊匹配时,参数需前后带上%
            params.put("name", "%"+name+"%");
            params.put("start", start);
            params.put("end", end);
            
            List<Student> stuList;
            stuList = sqlSession.selectList(Student.class.getName()
                    +".findByPageAndRequest", params);
            
            System.out.println("添加查询成功");        
            return stuList;
        }catch(Exception e){
            e.printStackTrace();
            throw e;
        }finally{
            MyBatisUtil.closeSqlSession();
        }
    }

 

posted @ 2020-04-25 12:43  林被熊烟岛  阅读(792)  评论(0编辑  收藏  举报