mybatis物理分页的实现

mybatis物理分页的实现

mybatis逻辑分页物理分页spring+mybatis

下面是所有的代码:
Java代码 收藏代码

package com.xxyd.mybatis.pojo;  
  
import java.io.Serializable;  
/** 
 * 实体类 
 * @author dove 
 * 
 */  
public class TestEntity implements Serializable{  
  
    private static final long serialVersionUID = -5849200248418883686L;  
    private int id ;  
    private String name;  
    private int no;  
    private int sex;  
    private int age;  
    private String count;  
    private String school;  
    private int weight;  
    private int height;  
    private String habbit;  
    private String memo;  
    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 int getNo() {  
        return no;  
    }  
    public void setNo(int no) {  
        this.no = no;  
    }  
    public int getSex() {  
        return sex;  
    }  
    public void setSex(int sex) {  
        this.sex = sex;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
    public String getCount() {  
        return count;  
    }  
    public void setCount(String count) {  
        this.count = count;  
    }  
    public String getSchool() {  
        return school;  
    }  
    public void setSchool(String school) {  
        this.school = school;  
    }  
    public int getWeight() {  
        return weight;  
    }  
    public void setWeight(int weight) {  
        this.weight = weight;  
    }  
    public int getHeight() {  
        return height;  
    }  
    public void setHeight(int height) {  
        this.height = height;  
    }  
    public String getHabbit() {  
        return habbit;  
    }  
    public void setHabbit(String habbit) {  
        this.habbit = habbit;  
    }  
    public String getMemo() {  
        return memo;  
    }  
    public void setMemo(String memo) {  
        this.memo = memo;  
    }  
    @Override  
    public String toString() {  
        return "TestEntity [id=" + id + ", name=" + name + ", no=" + no  
                + ", sex=" + sex + ", age=" + age + ", count=" + count  
                + ", school=" + school + ", weight=" + weight + ", height="  
                + height + ", habbit=" + habbit + ", memo=" + memo + "]";  
    }  
      
}  

2、DAO接口
Java代码 收藏代码

package com.xxyd.mybatis.dao;  
  
import java.util.List;  
  
import org.apache.ibatis.annotations.Param;  
  
import com.xxyd.mybatis.pojo.TestEntity;  
/** 
 * dao接口 
 * @author dove 
 * 
 */  
public interface TestMapper {  
    public void createTestEntity(TestEntity entity);  
    public List getTestEntityByPager(@Param("pageNo")int pageNo,@Param("pageSize") int pageSize);  
    public List getListTestEntity();  
    public int getTotalCount(@Param("pageNo")int pageNo,@Param("pageSize") int pageSize);  
    public void updateTestEntity(TestEntity entity);  
    public void deleteTestEntityById(@Param("id") int id);  
}  

3、映射文件TestMapper.xml
Xml代码 收藏代码

  
  
  
  
      
          
          
          
          
          
          
          
          
          
          
          
      
      
      
        insert into test_test(name,no,sex, age,count,school,weight,height,habbit,memo)   
        values(#{name},#{no},#{sex},#{age},#{count},#{school},#{weight},#{height},#{habbit},#{memo});  
      
      
      
      
      
      
      
      
      
        update test_test   
          
              
                name = #{name , jdbcType=VARCHAR},  
              
              
                no = #{no , jdbcType=INTEGER},  
              
              
                sex = #{sex , jdbcType=INTEGER},  
              
              
                age = #{age , jdbcType=INTEGER},  
              
              
                count = #{count , jdbcType=VARCHAR},  
              
              
                school = #{school , jdbcType=VARCHAR},  
              
              
                weight = #{weight , jdbcType=INTEGER},  
              
              
                height = #{height , jdbcType=INTEGER},  
              
              
                habbit = #{habbit , jdbcType=VARCHAR},  
              
              
                memo = #{memo , jdbcType=VARCHAR},  
              
          
        where id = #{id ,jdbcType=INTEGER}  
      
      
      
        delete from test_test where id = #{id}  
      
      
  

4、mybatis主配置文件mybatis-config.xml
Xml代码 收藏代码

  
  
  
      
      
          
      
      
      
      
      
          
      
  
      
      
          
      
        

6、jdbc.properties文件
Xml代码 收藏代码

driverClass=com.mysql.jdbc.Driver  
url=jdbc\:mysql\://127.0.0.1\:3306/student_manager  
username=root  
password=123456  

7、spring配置文件部分配置
Xml代码 收藏代码

  
  
  
      
      
  
      
          
          
          
          
      
  
      
          
      
  
      
          
          
      
      
      
      
          
      
      
      
  
      
      
          
          
      
  
    

7、最后,测试类:
Java代码 收藏代码

package com.xxyd.mybatis.test;  
  
import java.util.List;  
  
import org.apache.ibatis.session.RowBounds;  
import org.apache.ibatis.session.SqlSession;  
import org.apache.ibatis.session.SqlSessionFactory;  
import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
import org.junit.Test;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
  
import com.xxyd.mybatis.pojo.TestEntity;  
  
public class TestMapperTest {  
  
    //private SqlSessionFactory sessionFactory;  
    private static SqlSessionFactoryBuilder builder;  
    private static SqlSessionFactory sessionFactory;  
    static {  
        builder = new SqlSessionFactoryBuilder();  
        sessionFactory = builder.build(Thread.currentThread()  
                .getContextClassLoader()  
                .getResourceAsStream("mybatis-config.xml"));  
    }  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");  
        TestMapperTest TestMapperTest = (TestMapperTest)ctx.getBean("TestMapperTest");  
        TestMapperTest.getList();  
          
    }  
      
    @Test  
    public void getList(){  
        SqlSession sqlSession = sessionFactory.openSession();  
        //TestEntity entity = new TestEntity();  
        List list = sqlSession.selectList("com.xxyd.mybatis.dao.TestMapper.getListTestEntity", TestEntity.class, new RowBounds(0, 200));  
        sqlSession.commit();  
        sqlSession.close();  
        for (TestEntity testEntity : list) {  
            System.out.println(testEntity.toString());  
        }  
    }  
      
    //public SqlSessionFactory getSessionFactory() {  
    //  return sessionFactory;  
    //}  
    //public void setSessionFactory(SqlSessionFactory sessionFactory) {  
    //  this.sessionFactory = sessionFactory;  
    //}  
}  

能够成功运行的前提是,你已经将mybatis+spring的运行环境搭建好了,并且将mybatis-pager-1.0.0.jar也放置到classpath下。之后,直接运行测试类就可以了。

注意1:mybatis-pager-1.0.0.jar该包就是浪费我昨天一整天也没整出来的分页jar包,里面目前只适用于mysql和oracle两种数据库使用,其他的数据库还在研究中。

注意2:List list = sqlSession.selectList(“com.xxyd.mybatis.dao.TestMapper.getListTestEntity”, TestEntity.class, new RowBounds(0, 200));
第一个参数标准写法是TestMapper.xml的名称空间+select的对应id(建议sql映射文件中的sql语句结尾不要有分号);第二个参数是:实体类,当然也可以使字符串,只有是Object类型的就可以,目前还没发现什么异常,或许我研究的较为浅显的原因;第三个参数则是需要分页的数据。

下载 mybatis-pager-1.0.0.jar:https://dove19900520.iteye.com/blog/1724414

你可能感兴趣的:(mybatis,spring)