Mybatis 分页

使用Limit分页

语法

select * from user limit startIndex,pageSize
select * from user limit 3; //显示前3条信息

在mybatis使用

定义接口

package dao;
import pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
    List<User> getUserList();
    List<User> getUserBylimit(Map<String,Integer> map);
}

mapper配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace对应接口名字-->
<mapper namespace="dao.UserMapper">

    <resultMap id="UserMap" type="User">
        <id column="id" property="id"/>
        <id column="id" property="id"/>
        <!--将数据库的pwd字段映射成password-->
        <id column="pwd" property="pwd"/>
    </resultMap>

    <!--使用resultMap-->
    <select id="getUserList" resultMap="UserMap">
    select * from mybatis.user
  </select>

    <select id="getUserBylimit" resultType="user" parameterType="map">
        select * from mybatis.user limit #{startIndex},#{pageSize};
    </select>
</mapper>

主程序:

import dao.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Test;
import pojo.User;
import utiles.MybatisUtiles;

import java.util.HashMap;
import java.util.List;

public class Mytest {
    static Logger logger=Logger.getLogger(Mytest.class);

    public void test(){
        logger.info("进入getLogger方法成功!");
        SqlSession sqlSession= MybatisUtiles.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> list=mapper.getUserList();
        for (User user : list) {
            System.out.println(user);
        }
        sqlSession.close();
    }
    @Test
    public void test2(){
        SqlSession sqlSession=MybatisUtiles.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        HashMap<String,Integer> map=new HashMap<String, Integer>();
        map.put("startIndex",0);
        map.put("pageSize",2);
        List<User> users = mapper.getUserBylimit(map);
        for (User user : users) {
            System.out.println(user);
        }
        sqlSession.close();
    }
}

使用RowBounds分页(不推荐)

了解有这种方式就好 不做补充。

posted @ 2021-04-09 11:06  一个经常掉线的人  阅读(47)  评论(0)    收藏  举报