zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    已设定选项readonly请加!强制执行
    Linux下NVIDIA显卡驱动安装方法
    C#使用MiniDump导出内存快照MiniDumper
    一些陈旧的注册表垃圾清理脚本:注册表冗余数据清理.reg
    脚本精灵一些脚本
    本地安装SonarQube Community8.1社区版进行代码质量管控
    spring redistemplate中使用setHashValueSerializer的设置hash值序列化方法
    spring-core-5.0.6.RELEASE-sources.jar中java源代码不全
    lombok插件/slf4j中字符串格式化
    light4j/light-4j一个轻量级的低延时、高吞吐量、内存占用量小的API平台
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/11297442.html
Copyright © 2011-2022 走看看