zoukankan      html  css  js  c++  java
  • 8、mybatis分页

    MySQL中执行分页语句:

    index:从什么位置开始分页   pageIndex:分页显示的数量
    select
    * from mybatis.user limit index,pageIndex;

    第一种、使用mybatis进行分页操作:(map操作)

      IUserDao接口(定义业务方法):

    public interface IUserDao {
        /**分页查询*/
        List<User> getPageByLimit(Map<String,Integer> map);
    }

      UserMapper.xmlmapper(实现类):

    <!--命名空间:绑定UserDao相当于实现这个接口-->
    <mapper namespace="com.zhixi.dao.IUserDao">
    
        <!--结果集映射:用于实体类跟数据库字段名称不一样的情况-->
        <resultMap id="userMap" type="user">
            <!--column:数据库中的字段 property:实体类中的属性-->
            <result column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="pwd" property="password"/>
        </resultMap>
    
        <!--分页-->
        <select id="getPageByLimit" resultMap="userMap" parameterType="map" >
            select * from mybatis.user limit #{index},#{pageIndex};
        </select>
    </mapper>

      测试类:

    public class IUserDaoTest {
    
        @Test
        public void getLimitTest() {
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            IUserDao mapper = sqlSession.getMapper(IUserDao.class);
    
            Map<String, Integer> map = new HashMap<String, Integer>();
            //这里的index跟pageIndex要与mapper对应
            map.put("index", 0);
            map.put("pageIndex", 2);
    
            List<User> pageByLimit = mapper.getPageByLimit(map);
            for (User user : pageByLimit) {
                System.out.println(user);
            }
            sqlSession.close();
        }

      结果:

     第二种、使用mybatis进行分页操作:(普通limit实现)

    IUserDao接口(定义业务方法):

    public interface UserDao {
        /**
         * 分页查询的第二种方式
         */
        List<User> getLimit(@Param("id1") Integer id1, @Param("id2") Integer id2);
    }

      UserMapper.xmlmapper(实现类):

    <!--命名空间:绑定UserDao相当于实现这个接口-->
    <mapper namespace="com.zhixi.dao.IUserDao">
    
        <!--结果集映射:用于实体类跟数据库字段名称不一样的情况-->
        <resultMap id="userMap" type="user">
            <!--column:数据库中的字段 property:实体类中的属性-->
            <result column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="pwd" property="password"/>
        </resultMap>
    
        <!--分页-->
    
      <select id="getLimit" parameterType="int" resultMap="BaseResultMap">
       select * from mybatis.user limit #{id1},#{id2};
      </select>

    </mapper>

      测试类:

    public class IUserDaoTest {
    @Test
    public void getLimit(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UserDao mapper = sqlSession.getMapper(UserDao.class);
    List<User> limit = mapper.getLimit(0, 2);
    for (User user : limit) {
    System.out.println(user);
    }
    sqlSession.close();
    }
    }

     

  • 相关阅读:
    在 kylin-v10环境中搭建 electron
    二叉树建树
    python 从txt文件中提取数据保存到 xlxs 文件中
    openpyxl 插件写入数据
    python时间格式转换
    vue-typescript-element-template使用总结
    vue3入门
    typescript入门
    记录下谷歌 浏览器请求数据时遇302,重新连接的问题
    uni使用render.js视图层与逻辑层传数据 的问题
  • 原文地址:https://www.cnblogs.com/zhangzhixi/p/14203809.html
Copyright © 2011-2022 走看看