mybatis---分页

本文介绍了如何使用MyBatis进行分页查询。首先创建了名为category_的数据库表,接着新建Java项目并配置MyBatis及日志库。接着创建实体类、映射文件和接口,然后在MybatisTest1类中删除并插入数据。通过在Category.xml中添加limit以及在CategoryMapper中实现分页查询,并在MybatisTest2测试类中验证了分页效果。最后,演示了使用注解实现分页查询的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建数据库

    CREATE TABLE category_ (
        id int(11) NOT NULL AUTO_INCREMENT    PRIMARY KEY ,
        name varchar(32) DEFAULT NULL
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

    INSERT INTO category_ VALUES (1,'category1');
    INSERT INTO category_ VALUES (2,'category2');
 

2.新建java项目,新建lib,导入库,新建mybatis的配置文件mybatis-config.xml,新建log4j的配置文件log4j.properties

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>  
            <!-- 打开延迟加载的开关 -->  
            <setting name="lazyLoadingEnabled" value="true" />  
            <!-- 将积极加载改为消息加载即按需加载 -->  
            <setting name="aggressiveLazyLoading" value="false"/>  
        </settings>    
    <typeAliases>
      <package name="com.how2java.pojo"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/how2java/pojo/Category.xml"/>
        <mapper class="com.how2java.mapper.CategoryMapper"/>  
        <mapper class="com.how2java.mapper.ProductMapper"/>  
    </mappers>
</configuration>

 

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.how2java=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

3.创建实体类

package com.how2java.pojo;
 
import java.util.List;
 
/**
 * @author lenovo
 */
public class Category {
    private int id;
    private String name;
    List<Product> products;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List<Product> getProducts() {
        return products;
    }
    public void setProducts(List<Product> products) {
        this.products = products;
    }
    @Override
    public String toString() {
        return "Category [id=" + id + ", name=" + name + "]";
    }
     
}

 

package com.how2java.pojo;
 
/**
 * @author lenovo
 */
public class Product {
    private int id;
    private String name;
    private float price;

   public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "Product [id=" + id + ", name=" + name + ", price=" + price + "]";
    }
 
}

 

4.创建实体类的映射Category.xml文件:

<?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 mybatis.category_ ( name ) values (#{name})
       </insert>
       
       <delete id="deleteCategory" parameterType="Category" >
           delete from mybatis.category_ where id= #{id}
       </delete>
       
       <select id="getCategory" parameterType="_int" resultType="Category">
           select * from   mybatis.category_  where id= #{id}
       </select>

       <update id="updateCategory" parameterType="Category" >
           update mybatis.category_ set name=#{name} where id=#{id}
       </update>
<!--   新增limit  start是指从第0个开始,如果是第二页,那么就是第5个开始。 count参数是指每页有5条数据-->
       <select id="listCategory" resultType="Category">
           select * from   mybatis.category_
<!--            <if test="start!=null and count!=null">-->
<!--               limit #{start},#{count}-->
<!--            </if>-->
       </select>      
   </mapper>

 

5.创建实体类的接口CategoryMapper,ProductMapper

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;
 
/**
 * @author lenovo
 */
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.mapper;
 
import java.util.List;

import org.apache.ibatis.annotations.Select;

import com.how2java.pojo.Product;
 
/**
 * @author lenovo
 */
public interface ProductMapper {
 
    @Select(" select * from product_ where cid = #{cid}")
    public List<Product> listByCategory(int cid);
    
    
}

6.新建MybatisTest1类,把分类表里的数据都删除掉,然后新增100个数据

 

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;




/**
 * 分页查询,
 * 把分类表里的数据都删除掉,然后新增100个数据
 * @author lenovo
 */
public class MybatisTest1 {
        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();

        }
    }

结果:DEBUG [main] - ==>  Preparing: select * from mybatis.category_
DEBUG [main] - ==> Parameters:
TRACE [main] - <==    Columns: id, name
TRACE [main] - <==        Row: 1, category1
TRACE [main] - <==        Row: 2, category2
DEBUG [main] - <==      Total: 2
DEBUG [main] - ==>  Preparing: delete from mybatis.category_ where id= ?
DEBUG [main] - ==> Parameters: 1(Integer)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: delete from mybatis.category_ where id= ?
DEBUG [main] - ==> Parameters: 2(Integer)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 0(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 1(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 2(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 3(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 4(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 5(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 6(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 7(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 8(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 9(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 10(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 11(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 12(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 13(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 14(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 15(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 16(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 17(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 18(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 19(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 20(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 21(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 22(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 23(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 24(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 25(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 26(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 27(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 28(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 29(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 30(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 31(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 32(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 33(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 34(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 35(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 36(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 37(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 38(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 39(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 40(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 41(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 42(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 43(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 44(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 45(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 46(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 47(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 48(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 49(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 50(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 51(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 52(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 53(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 54(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 55(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 56(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 57(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 58(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 59(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 60(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 61(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 62(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 63(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 64(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 65(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 66(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 67(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 68(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 69(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 70(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 71(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 72(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 73(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 74(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 75(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 76(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 77(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 78(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 79(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 80(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 81(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 82(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 83(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 84(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 85(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 86(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 87(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 88(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 89(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 90(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 91(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 92(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 93(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 94(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 95(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 96(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 97(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 98(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: insert into mybatis.category_ ( name ) values (?)
DEBUG [main] - ==> Parameters: category name 99(String)
DEBUG [main] - <==    Updates: 1
DEBUG [main] - ==>  Preparing: select * from mybatis.category_
DEBUG [main] - ==> Parameters:
TRACE [main] - <==    Columns: id, name
TRACE [main] - <==        Row: 3, category name 0
TRACE [main] - <==        Row: 4, category name 1
TRACE [main] - <==        Row: 5, category name 2
TRACE [main] - <==        Row: 6, category name 3
TRACE [main] - <==        Row: 7, category name 4
TRACE [main] - <==        Row: 8, category name 5
TRACE [main] - <==        Row: 9, category name 6
TRACE [main] - <==        Row: 10, category name 7
TRACE [main] - <==        Row: 11, category name 8
TRACE [main] - <==        Row: 12, category name 9
TRACE [main] - <==        Row: 13, category name 10
TRACE [main] - <==        Row: 14, category name 11
TRACE [main] - <==        Row: 15, category name 12
TRACE [main] - <==        Row: 16, category name 13
TRACE [main] - <==        Row: 17, category name 14
TRACE [main] - <==        Row: 18, category name 15
TRACE [main] - <==        Row: 19, category name 16
TRACE [main] - <==        Row: 20, category name 17
TRACE [main] - <==        Row: 21, category name 18
TRACE [main] - <==        Row: 22, category name 19
TRACE [main] - <==        Row: 23, category name 20
TRACE [main] - <==        Row: 24, category name 21
TRACE [main] - <==        Row: 25, category name 22
TRACE [main] - <==        Row: 26, category name 23
TRACE [main] - <==        Row: 27, category name 24
TRACE [main] - <==        Row: 28, category name 25
TRACE [main] - <==        Row: 29, category name 26
TRACE [main] - <==        Row: 30, category name 27
TRACE [main] - <==        Row: 31, category name 28
TRACE [main] - <==        Row: 32, category name 29
TRACE [main] - <==        Row: 33, category name 30
TRACE [main] - <==        Row: 34, category name 31
TRACE [main] - <==        Row: 35, category name 32
TRACE [main] - <==        Row: 36, category name 33
TRACE [main] - <==        Row: 37, category name 34
TRACE [main] - <==        Row: 38, category name 35
TRACE [main] - <==        Row: 39, category name 36
TRACE [main] - <==        Row: 40, category name 37
TRACE [main] - <==        Row: 41, category name 38
TRACE [main] - <==        Row: 42, category name 39
TRACE [main] - <==        Row: 43, category name 40
TRACE [main] - <==        Row: 44, category name 41
TRACE [main] - <==        Row: 45, category name 42
TRACE [main] - <==        Row: 46, category name 43
TRACE [main] - <==        Row: 47, category name 44
TRACE [main] - <==        Row: 48, category name 45
TRACE [main] - <==        Row: 49, category name 46
TRACE [main] - <==        Row: 50, category name 47
TRACE [main] - <==        Row: 51, category name 48
TRACE [main] - <==        Row: 52, category name 49
TRACE [main] - <==        Row: 53, category name 50
TRACE [main] - <==        Row: 54, category name 51
TRACE [main] - <==        Row: 55, category name 52
TRACE [main] - <==        Row: 56, category name 53
TRACE [main] - <==        Row: 57, category name 54
TRACE [main] - <==        Row: 58, category name 55
TRACE [main] - <==        Row: 59, category name 56
TRACE [main] - <==        Row: 60, category name 57
TRACE [main] - <==        Row: 61, category name 58
TRACE [main] - <==        Row: 62, category name 59
TRACE [main] - <==        Row: 63, category name 60
TRACE [main] - <==        Row: 64, category name 61
TRACE [main] - <==        Row: 65, category name 62
TRACE [main] - <==        Row: 66, category name 63
TRACE [main] - <==        Row: 67, category name 64
TRACE [main] - <==        Row: 68, category name 65
TRACE [main] - <==        Row: 69, category name 66
TRACE [main] - <==        Row: 70, category name 67
TRACE [main] - <==        Row: 71, category name 68
TRACE [main] - <==        Row: 72, category name 69
TRACE [main] - <==        Row: 73, category name 70
TRACE [main] - <==        Row: 74, category name 71
TRACE [main] - <==        Row: 75, category name 72
TRACE [main] - <==        Row: 76, category name 73
TRACE [main] - <==        Row: 77, category name 74
TRACE [main] - <==        Row: 78, category name 75
TRACE [main] - <==        Row: 79, category name 76
TRACE [main] - <==        Row: 80, category name 77
TRACE [main] - <==        Row: 81, category name 78
TRACE [main] - <==        Row: 82, category name 79
TRACE [main] - <==        Row: 83, category name 80
TRACE [main] - <==        Row: 84, category name 81
TRACE [main] - <==        Row: 85, category name 82
TRACE [main] - <==        Row: 86, category name 83
TRACE [main] - <==        Row: 87, category name 84
TRACE [main] - <==        Row: 88, category name 85
TRACE [main] - <==        Row: 89, category name 86
TRACE [main] - <==        Row: 90, category name 87
TRACE [main] - <==        Row: 91, category name 88
TRACE [main] - <==        Row: 92, category name 89
TRACE [main] - <==        Row: 93, category name 90
TRACE [main] - <==        Row: 94, category name 91
TRACE [main] - <==        Row: 95, category name 92
TRACE [main] - <==        Row: 96, category name 93
TRACE [main] - <==        Row: 97, category name 94
TRACE [main] - <==        Row: 98, category name 95
TRACE [main] - <==        Row: 99, category name 96
TRACE [main] - <==        Row: 100, category name 97
TRACE [main] - <==        Row: 101, category name 98
TRACE [main] - <==        Row: 102, category name 99
DEBUG [main] - <==      Total: 100
category name 0
category name 1
category name 2
category name 3
category name 4
category name 5
category name 6
category name 7
category name 8
category name 9
category name 10
category name 11
category name 12
category name 13
category name 14
category name 15
category name 16
category name 17
category name 18
category name 19
category name 20
category name 21
category name 22
category name 23
category name 24
category name 25
category name 26
category name 27
category name 28
category name 29
category name 30
category name 31
category name 32
category name 33
category name 34
category name 35
category name 36
category name 37
category name 38
category name 39
category name 40
category name 41
category name 42
category name 43
category name 44
category name 45
category name 46
category name 47
category name 48
category name 49
category name 50
category name 51
category name 52
category name 53
category name 54
category name 55
category name 56
category name 57
category name 58
category name 59
category name 60
category name 61
category name 62
category name 63
category name 64
category name 65
category name 66
category name 67
category name 68
category name 69
category name 70
category name 71
category name 72
category name 73
category name 74
category name 75
category name 76
category name 77
category name 78
category name 79
category name 80
category name 81
category name 82
category name 83
category name 84
category name 85
category name 86
category name 87
category name 88
category name 89
category name 90
category name 91
category name 92
category name 93
category name 94
category name 95
category name 96
category name 97
category name 98
category name 99

 

7.在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 mybatis.category_ ( name ) values (#{name})
       </insert>
       
       <delete id="deleteCategory" parameterType="Category" >
           delete from mybatis.category_ where id= #{id}
       </delete>
       
       <select id="getCategory" parameterType="_int" resultType="Category">
           select * from   mybatis.category_  where id= #{id}
       </select>

       <update id="updateCategory" parameterType="Category" >
           update mybatis.category_ set name=#{name} where id=#{id}
       </update>
<!--   新增limit  start是指从第0个开始,如果是第二页,那么就是第5个开始。 count参数是指每页有5条数据-->
       <select id="listCategory" resultType="Category">
           select * from   mybatis.category_
            <if test="start!=null and count!=null">
               limit #{start},#{count}
            </if>
       </select>      
   </mapper>

8.在CategoryMapper 中添加limit

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;
 
/**
 * @author lenovo
 */
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);
}

9.新建MybatisTest2测试类 类

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;

/**
 * 测试100个数据加入了没
 * @author lenovo
 */
public class MybatisTest2 {

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

}

DEBUG [main] - ==>  Preparing: select * from category_ limit ?,?
DEBUG [main] - ==> Parameters: 0(Integer), 5(Integer)
TRACE [main] - <==    Columns: id, name
TRACE [main] - <==        Row: 3, category name 0
TRACE [main] - <==        Row: 4, category name 1
TRACE [main] - <==        Row: 5, category name 2
TRACE [main] - <==        Row: 6, category name 3
TRACE [main] - <==        Row: 7, category name 4
DEBUG [main] - <==      Total: 5
Category [id=3, name=category name 0]
Category [id=4, name=category name 1]
Category [id=5, name=category name 2]
Category [id=6, name=category name 3]
Category [id=7, name=category name 4]

注解实现分页查询:

1.根据上述不动,

2.改CategoryMapper.java

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;
 
/**
 * @author lenovo
 */
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);
}

3.运行测试类:

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.mapper.CategoryMapper;
import com.how2java.pojo.Category;

/**使用注解的方式:分页查询
 * @author lenovo
 */

public class MybatisTest3 {

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

            CategoryMapper mapper = session.getMapper(CategoryMapper.class);

            List<Category>  cs =mapper.listByPage(0, 5);
            for (Category c : cs) {
                System.out.println(c);
            }
            session.commit();
            session.close();
        }
    }

 

TRACE [main] - <==    Columns: id, name
TRACE [main] - <==        Row: 3, category name 0
TRACE [main] - <==        Row: 4, category name 1
TRACE [main] - <==        Row: 5, category name 2
TRACE [main] - <==        Row: 6, category name 3
TRACE [main] - <==        Row: 7, category name 4
DEBUG [main] - <==      Total: 5
Category [id=3, name=category name 0]
Category [id=4, name=category name 1]
Category [id=5, name=category name 2]
Category [id=6, name=category name 3]
Category [id=7, name=category name 4]

id从3开始的原因是,我新建数据库时插入了id为1,和2的了

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值