zoukankan      html  css  js  c++  java
  • 十二、持久层框架(MyBatis)

    一、PageHelper分页插件的使用

    PageHelper是一款MyBatis的分页插件,只需要简单的配置,然后直接调用方法就可以。

    1、配置PageHelper插件

    在mybatis-config.xml中,配置如下

    <plugins>
        <plugin>
            inteceptor="com.github.pagehelper.PageInterceptor"
        </plugin>
    </plugins>

    具体mybatis-config.xml如下:

    <?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.demo.pojo"/>
        </typeAliases>
        <plugins>
        <!--配置PageHelper分页插件-->
          <plugin interceptor="com.github.pagehelper.PageInterceptor">
            </plugin>
        </plugins>     
        <!--数据库连接环境配置--> 
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
                </dataSource>
            </environment>
        </environments>
        <!--映射文件配置-->
        <mappers>
                <!--基于xml方式映射-->
            <mapper resource="com/demo/pojo/Category.xml"/>
            <!--基于注解方式映射-->
            <mapper class="com.how2java.mapper.CategoryMapper"/>  
            <mapper class="com.how2java.mapper.ProductMapper"/>  
        </mappers>  
    </configuration>

    2、使用PageHelper提供的方法进行分页查询测试

    package com.demo;
    import java.io.IOException;
    import java.io.InputSteam;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.ibatis.io.Resouces;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import com.demo.pojo.Product;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    
    public class TestMyBatis{
        public static void main(String[] args) throws IOException{
            String resouce="mybatis-config.xml";
            InputSteam inputStream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession session=sqlSessionFactory.openSession();
            
            PageHelper.offsetPage(0,5);//表示从0开始,每一页显示5条数据
            List<Product> list=session.selectList("listCategory");
            for(Product p:list){
                System.out.println(p);
            }
            PageInfo pageInfo=new PageInfo<>(p);
            System.out.println("总数:"+pageInfo.getTotal());//总个数
            System.out.println(pageInfo);//PageInfo{pageNum=1,pageSize=5,size=5,startRow=1,end}
            session.commit();
            session.close();
            
        }    
    }
    View Code

    3、一级缓存和二级缓存

    和Hibernate一样,都是一级缓存是基于Session级别,二级缓存是SessionFactory级别的。

    二、基于xml配置与基于注解方式配置的比较

    XML配置方式:

    优点:容易编辑,配置比较集中,方便修改,在大业务量的系统里面,通过XML配置会方便后人理解整个系统架构,修改之后直接重启应用即可

    缺点:比较繁琐,配置形态丑陋,配置文件过多的时候难以管理

    注解方式:

    优点:方便,简洁,配置信息和Java代码放在一块,有助于增加程序的内聚性

    缺点:分散到各个class文件中,所以不宜维护,修改之后需要重新打包,发布,重启应用。

    小项目,参与人不多,不复杂的用注解。复杂项目,多人交互,配置量大,维护复杂度高,用配置文件。

  • 相关阅读:
    鸡兔同笼问题
    猴子吃桃问题
    Fibonacci_sequence(斐波那契数列)
    Joseph_Circle(约瑟夫环)
    学生成绩管理--功能全--较难
    各种排序
    二叉排序树操作--基本
    面向对象程序设计(多继承)--简单
    面向对象程序设计3--简单
    使用 ASR 和 Azure Pack 为 IaaS 工作负荷提供托受管 DR
  • 原文地址:https://www.cnblogs.com/drq1/p/8568052.html
Copyright © 2011-2022 走看看