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/
了解即可,建议自己手写,加深理解和记忆!