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);
        }
    }

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/11297442.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java使用 MyBatis 进行分页查询可以按照以下步骤进行操作: 1. 首先,需要在数据库配置文件(比如 `mybatis-config.xml`)中配置分页插件。在 `<configuration>` 标签内添加如下配置: ```xml <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="dialect" value="mysql"/> </plugin> </plugins> ``` 这里以 MySQL 数据库为例,如果是其他数据库,请根据实际情况配置相应的 `dialect`。 2. 在需要进行分页查询的方法上添加分页参数。一般情况下,分页查询会有两个参数:页码和每页的记录数。可以使用 MyBatis 提供的 `RowBounds` 或者传递多个参数的方式来实现使用 `RowBounds` 的示例代码如下: ```java List<User> getUsersByPage(SqlSession sqlSession, int pageNum, int pageSize) { RowBounds rowBounds = new RowBounds((pageNum - 1) * pageSize, pageSize); return sqlSession.selectList("UserMapper.getUsers", null, rowBounds); } ``` 使用多个参数的方式示例代码如下: ```java List<User> getUsersByPage(SqlSession sqlSession, int offset, int limit) { return sqlSession.selectList("UserMapper.getUsersByPage", Map.of("offset", offset, "limit", limit)); } ``` 3. 在 MyBatis 的映射文件中编写对应的 SQL 语句。例如,假设查询用户表(user)中的数据,可以使用类似以下的 SQL 语句: ```xml <select id="getUsers" resultType="User"> SELECT * FROM user </select> ``` 或者使用带有参数的 SQL 语句: ```xml <select id="getUsersByPage" resultType="User"> SELECT * FROM user LIMIT #{offset}, #{limit} </select> ``` 以上是使用 MyBatis 进行分页查询的基本步骤。根据实际情况,你可以根据具体需求进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值