Mybatis其他-分页

  • 增加100条catgory数据

    为了观察分页查询的效果,把分类表里的数据都删除掉,然后新增100个数据
    package com.how2java;
        
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
     
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     
    import com.how2java.pojo.Category;
        
    public class TestMybatis {
        
        public static void main(String[] args) throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session = sqlSessionFactory.openSession();
            List<Category> cs = session.selectList("listCategory");
            for (Category c : cs) {
                session.delete("deleteCategory", c);
            }
            for (int i = 0; i < 100; i++) {
                Category c = new Category();
                c.setName("category name " + i);
                session.insert("addCategory", c);
            }
            List<Category> cs2 = session.selectList("listCategory");
            for (Category c : cs2) {
                System.out.println(c.getName());
            }
     
            session.commit();
            session.close();
     
        }
    }
  • 修改Category.xml

    新增limit
    <?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="com.how2java.pojo">
            <insert id="addCategory" parameterType="Category" >
                insert into category_ ( name ) values (#{name})   
            </insert>
             
            <delete id="deleteCategory" parameterType="Category" >
                delete from category_ where id= #{id}  
            </delete>
             
            <select id="getCategory" parameterType="_int" resultType="Category">
                select * from   category_  where id= #{id}   
            </select>
     
            <update id="updateCategory" parameterType="Category" >
                update category_ set name=#{name} where id=#{id}   
            </update>
            <select id="listCategory" resultType="Category">
                select * from   category_
                    <if test="start!=null and count!=null">
                        limit #{start},#{count}
                    </if>
            </select>    
        </mapper>
  • 测试

    用注解方式再做一遍
    注: start是指从第0个开始,如果是第二页,那么就是第5个开始。
    注: count参数是指每页有5条数据


    package com.how2java.mapper;
      
    import java.util.List;
     
    import org.apache.ibatis.annotations.Many;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Result;
    import org.apache.ibatis.annotations.Results;
    import org.apache.ibatis.annotations.Select;
     
    import com.how2java.pojo.Category;
      
    public interface CategoryMapper {
        @Select(" select * from category_ ")
        @Results({@Result(property = "products", javaType = List.class, column = "id", 
              many = @Many(select = "com.how2java.mapper.ProductMapper.listByCategory"))})      
        public List<Category> list();
         
        @Select(" select * from category_ limit #{start},#{count}")
        public List<Category> listByPage(@Param("start") int start, @Param("count")int count);
    }
    package com.how2java;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     
    import com.how2java.mapper.CategoryMapper;
    import com.how2java.pojo.Category;
       
    public class TestMybatis {
       
        public static void main(String[] args) throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session = sqlSessionFactory.openSession();
     
    //        xmlWay(session);   
            annotationWay(session);
             
            session.commit();
            session.close();
        }
     
        private static void xmlWay(SqlSession session) {
            Map<String,Object> params = new HashMap<>();
            params.put("start", 0);
            params.put("count", 5);
            List<Category>  cs =session.selectList("listCategory", params);
            for (Category c : cs) {
                System.out.println(c);
            }
        }
     
        private static void annotationWay(SqlSession session) {
            CategoryMapper mapper = session.getMapper(CategoryMapper.class);
             
            List<Category>  cs =mapper.listByPage(0, 5);
            for (Category c : cs) {
                System.out.println(c);
            }
        }
         
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值