Mybatis与pageHelper

分页:
    分页分为假分页和真分页对应的专业术语叫做逻辑分页和物理分页
    逻辑分页:将所有的数据从数据库查询出来,根据需求截取符合要求的数据返回,方便统一但效率低
    物理分页:直接将需要的数据查询出来,但是数据库之间有差异性,但是效率高,数据库性能损耗小
    
物理分页的关键:
    需要自己编写处理方法来处理数据库之间的差异
    mysql:limit
    oracle:roowid
    sqlServer:top
    
Mybatis物理分页的分页插件
    * 引入分页的jar包    
      jsqlparser-0.9.5.jar
      pagehelper-4.2.1.jar
    * 在主配置文件中配置plugins
    <!-- 配置pageHelper分页插件 -->
     <plugins>
          <plugin interceptor="com.github.pagehelper.PageHelper">
          <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
            <property name="dialect" value="mysql"/>         
            <!--当设置为true的时候,如果pagesize设置为0 就不执行分页,返回全部结果  -->
            <property name="pageSizeZero" value="true"/>
            <!--合理化查询 比如如果pageNum<1会查询第一页;如果pageNum>pages会查询最后一页(设置为false返回空)-->
            <property name="reasonable" value="false"/>
            <!-- 支持通过Mapper接口参数来传递分页参数 -->
            <property name="supportMethodsArguments" value="false"/>
             <!-- 总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->    
            <property name="returnPageInfo" value="none"/>
        </plugin>
    </plugins>
    
应用
开发一个简单的登录功能通过servlet

思考:spring如何应用在项目中
    在java工作中,我们可以通过记载spring的配置文件,初始化容器
    ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    IUserService userService = (IUserService) ac.getBean("userService");
    
    在web工程中IOC容器怎么创建,创建后要怎么获取容器管理的对象
        IOC容器必须在web容器启动的时候创建
            1:servlet提供了ServletContextListener.contextInitialized方法可以在web容器启动的时候加载我们需要的东西
            2:创建IOC容器以后,将其放在ServletContext
            ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
            // 将容器对象放入ServletContext中
            ServletContext servletContext = servletContextEvent.getServletContext();
            servletContext.setAttribute("ApplicationContext", ac);

mybatis学习三的更多相关文章

  1. MyBatis学习(三)---MyBatis和Spring整合

    想要了解MyBatis基础的朋友可以通过传送门: MyBatis学习(一)---配置文件,Mapper接口和动态SQL http://www.cnblogs.com/ghq120/p/8322302. ...

  2. MyBatis学习(三)

    前言 感觉学习进度还是比较慢啊,一整天的学习效率不是很高,一会看电视,一会喝茶,对自己的要求不严格...今天就说说关联表数据的插入以及别名的使用. 正文 1.关联插入 之前,我在数据库中已经创建了一张 ...

  3. mybatis 学习三 关键文件解析

    1:  mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  4. mybatis 学习三 mapper xml 配置信息

    mapper xml 映射文件 1,select 标签      简单是用就这样,其中resultType 代表从这条语句中返回的期望类型的类的完全限定名或别名.也可以使用resultMap对应的id ...

  5. mybatis学习三 数据库连接池技术

    1.在内存中开辟一块空间,存放多个数据库连接对象.就是Connection的多个实例2. 连接池技术有很多,c3p0,dbcp,druid,以及JDBC Tomcat Pool, JDBC Tomca ...

  6. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  7. MyBatis学习 之 三、动态SQL语句

    目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...

  8. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  9. MyBatis学习总结(三)——多表关联查询与动态SQL

    在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...

随机推荐

  1. Python 自学 之 String 常见操作

    这是在Python 3.5.3版本下测试的.# Author Taylor_Manitoname ="my name is alex"#capitalized 大写的print(& ...

  2. GLSL Versions和GLSL ES Versions 对比

    You can use the #version command as the first line of your shader to specify GLSL version: #version ...

  3. 1.由浅入深解析 SimpleDateFormat

    一.SimpleDateFormat简介 SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (date -> text).语法分析 (text - ...

  4. Struts2学习笔记二 配置详解

    Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的name ...

  5. 第1次作业:no blog no fun

    1.先回答老师的问题 第一部分:结缘计算机       读了进入2012 -- 回顾我走过的编程之路后,我试着回顾了我的编程生涯的开始.我最原始的记忆就是老爸教我用电脑玩连连看,那时候的显示器应该是C ...

  6. 关于python中的operator.itemgetter()函数的用法

    1. operator.itemgetter(num)函数 表示对对象的第num维数据进行操作获取. >>>import operator >>>a = [1, 2 ...

  7. Numpy - 多维数组(上)

    一.实验说明 numpy 包为 Python 提供了高性能的向量,矩阵以及高阶数据结构.由于它们是由 C 和 Fortran 实现的,所以在操作向量与矩阵时性能非常优越. 1. 环境登录 无需密码自动 ...

  8. Scrum 冲刺 第七日

    Scrum 冲刺 第七日 站立式会议 燃尽图 今日任务安排 项目发布说明 站立式会议 返回目录 燃尽图 返回目录 今日任务安排 返回目录 项目发布说明 本版本的新功能 不只是简单打地鼠,还有一些不能打 ...

  9. c++ 中lambda

    C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作. 1.Lambda表达式完整的声明格式如下: [capture list] (params list) mutable  ...

  10. nyoj 邮票分你一半

    邮票分你一半 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述      小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明.每张邮票上都有分值,他们想把这些邮票分 ...