java之mybatis之查询及分页

1.mybatis中查询方式有3种

复制代码
//查询单个值
    @Test
    public void testFindOne()throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findOne", 1);
        System.out.println(user);
        session.close();
    }
    //查询list
    @Test
    public void testFindAll() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.findAll");
        for(User u:list){
            System.out.println(u);
        }
        session.close();
    }
    //查询map
    @Test
    public void testFindMap()throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        //selectMap 传递的参是 map集合的key值。
        Map map=session.selectMap("cn.sxt.vo.UserMapper.findMap", "name");
        for(Iterator iter=map.keySet().iterator();iter.hasNext();){
            Object key=iter.next();
            System.out.println(key+"---"+map.get(key));
        }
        session.close();
    }
复制代码

映射文件

复制代码
<?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="cn.sxt.vo.UserMapper">
    <!-- 查询单个对象 -->
    <select id="findOne" resultType="User">
        select * from t_user where id=#{id}
    </select>
    <!-- 查询list -->
    <select id="findAll" resultType="User">
        select * from t_user
    </select>
    <!-- 查询map -->
    <select id="findMap" resultType="Map">
        select * from t_user where id=1
    </select>
    <!-- 
        begin=(currentPage-1)*pageSize
        size=pageSize
     -->
    <select id="page1" resultType="User">
        select * from t_user limit #{begin},#{size}
    </select>
    <select id="pageRow" resultType="User">
        select * from t_user
    </select>
</mapper>
复制代码

2.分页

mybatis中有3种方式实现分页

映射文件

    <select id="page1" resultType="User">
        select * from t_user limit #{begin},#{size}
    </select>
    <select id="pageRow" resultType="User">
        select * from t_user
    </select>

代码

复制代码
//通过sql语句进行分页,参数传入的是对象
    @Test
    public void testPage() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        PageInfo pi = new PageInfo();
        pi.setBegin(3);
        pi.setSize(3);
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.page1",pi);
        for(User u:list){
            System.out.println(u);
        }
    }
    //通过sql语句进行分页,参数传入的是map
    @Test
    public void testPage1() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        Map map = new HashMap();
        map.put("begin", 0);
        map.put("size", 3);
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.page1",map);
        for(User u:list){
            System.out.println(u);
        }
    }
    //通过RowBounds来实现分页 
    @Test
    public void testPage2() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        //第一个 参数 相当于index,第二个参数 每页显示记录数
        RowBounds bounds = new RowBounds(3, 3);
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.pageRow",null,bounds);
        for(User u:list){
            System.out.println(u);
        }
    }
复制代码

 

posted @   Vincent-yuan  阅读(2685)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示