zoukankan      html  css  js  c++  java
  • springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件

    整合mybatis实在前面项目的基础上进行的,前面项目具体整合请参照springboot使用之一。

    一.整合mybatis

    整合mybatis的时候可以从mybatis官网下载mybatis官网整合的项目mybatis-spring-boot-start.对原理感兴趣可以研究2一下,这里只叙述步骤。

    1.引入依赖:

    		<dependency>
    			<groupId>org.mybatis.spring.boot</groupId>
    			<artifactId>mybatis-spring-boot-starter</artifactId>
    			<version>1.1.1</version>
    		</dependency>
              <dependency>
    			<groupId>ognl</groupId>
    			<artifactId>ognl</artifactId>
    			<version>3.1.2</version>
    			<scope>test</scope>
    			<exclusions>
    				<exclusion>
    					<groupId>javassist</groupId>
    					<artifactId>javassist</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    		<dependency>
    			<groupId>org.javassist</groupId>
    			<artifactId>javassist</artifactId>
    			<version>3.20.0-GA</version>
    			<scope>test</scope>
    		</dependency>

    2.在application.properties文件中添加mybatis相关配置:

    mybatis.mapperLocations=sample/mybatis/mapper/*.xml
    mybatis.configLocation=classpath:mybatis-config.xml
    logging.level.sample.mybatis.mapper=TRACE

    然后将mapper相关的*.xml,以及mybatis-config.xml放在相应的位置。

    注意:mybatis-config.xml 配置路径指定的时候,一定要加classpath前缀,否则可能会出现找不到文件错误,特别是指定项目名称的时候。

    3.在mybaits-config.xml添加配置,参照mybatis官网文档:

    <?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>
        <typeAliases>
            <package name="sample.mybatis.domain"/>
        </typeAliases>
    </configuration>

    二.mybatis分页插件PageHelper的整合

    此整合参照PageHelper官网提供的推荐配置,具体情况请参照作者github上的文档为主。这里只就mysql简单整合。

    1.添加PageHelp的依赖

            <!-- mybatis 分页插件 -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>4.1.6</version>
            </dependency>
        

    2.在mybatis-config.xml添加插件配置

    <plugins>
            <!-- com.github.pagehelper为PageHelper类所在包名 -->
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <!-- 4.0.0以后版本可以不设置该参数 -->
                <property name="dialect" value="mysql" />
                <!-- 该参数默认为false -->
                <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
                <!-- 和startPage中的pageNum效果一样 -->
                <property name="offsetAsPageNum" value="true" />
                <!-- 该参数默认为false -->
                <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
                <property name="rowBoundsWithCount" value="true" />
                <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
                <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型) -->
                <property name="pageSizeZero" value="true" />
                <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
                <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
                <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
                <property name="reasonable" value="false" />
                <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
                <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
                <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->
                <!-- 不理解该含义的前提下,不要随便复制该配置 -->
                <property name="params"
                    value="pageNum=pageHelperStart;pageSize=pageHelperRows;" />
                <!-- 支持通过Mapper接口参数来传递分页参数 -->
                <property name="supportMethodsArguments" value="false" />
                <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
                <property name="returnPageInfo" value="none" />
            </plugin>
        </plugins>

    这时候,你就可以f在项目中使用mybatis并且使用pageHelper分页插件所提供的功能了。

    注意:mapper接口使用时,一定要添加@Mapper注解,在没有整合通用mapper的时候。

  • 相关阅读:
    Elasticsearch Network Settings
    Spring Application Event Example
    hibernate persist update 方法没有正常工作(不保存数据,不更新数据)
    快速自检电脑是否被黑客入侵过(Linux版)
    快速自检电脑是否被黑客入侵过(Windows版)
    WEB中的敏感文件泄漏
    Nginx日志分析
    关系型数据库设计小结
    软件开发的一些"心法"
    关于DNS,你应该知道这些
  • 原文地址:https://www.cnblogs.com/sloveling/p/springboot_2.html
Copyright © 2011-2022 走看看