Mybatis 分页

Sql实现

UserDao接口

package dao;

import pojo.User;

import java.util.List;
import java.util.Map;

public interface UserDao {
    public List<User> getLimitUser(Map<String,Integer> map);
}

Mapper配置文件,这里我们使用了结果集映射,因为我们的数据库字段名和Java Bean的属性名不一致

<?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">
<mapper namespace="dao.UserDao">
    <resultMap id="UserMap" type="User">
        <result property="pwd" column="password" />
    </resultMap>

    <select id="getLimitUser" parameterType="map" resultMap="UserMap">
        select * from user limit #{startIndex},#{pageSize}
    </select>
</mapper>

测试类,因为我们使用的是Map传参,所以要new一个HashMap

import dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.User;
import utils.MybatisUtils;

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

public class UserMapper {
    @Test
    public void getLimitUserTest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        Map<String,Integer> map=new HashMap<>();
        map.put("startIndex",0);
        map.put("pageSize",2);

        List<User> users = mapper.getLimitUser(map);

        for (User user : users) {
            System.out.println(user);
        }

        sqlSession.close();
    }
}

RowBounds实现(了解)

因为我们使用Sql实现不符合Java的面向对象思想,然后早期的时候就有一群人提出了使用Java代码实现也就是RowBounds,现在大部分的公司已经不使用这种技术了,下面我们看看怎么实的

我们的Sql就会变成下面这样

<select id="getLimitUser" parameterType="map" resultType="User">
    select * from user ;
</select>

然后我们要使用第二种方法调用的方法,也就是直接查询,下面看测试类

import dao.UserDao;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.User;
import utils.MybatisUtils;

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

public class UserMapper {
	 @Test
    public void getLimitUserTest(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        RowBounds rowBounds = new RowBounds(0,2);

        List<User> users = sqlSession.selectList("dao.UserDao.getLimitUser", null, rowBounds);

        for (User user : users) {
            System.out.println(user);
        }

        sqlSession.close();
    }
}

Mybatis分页插件PageHelper

获取地址:https://pagehelper.github.io/

了解即可,建议自己手写,加深理解和记忆!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值