zoukankan      html  css  js  c++  java
  • (通用Mapper、分页,批量插入,一分钟接入)spring mvc+mybatis+maven集成tkmapper+pagehelper

    <!-- maven  tkmapper引入-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper</artifactId>
        <version>3.3.8</version>
        <exclusions>
            <exclusion>
                <groupId>javax.persistence</groupId>
                <artifactId>persistence-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- pagehelper maven 引入 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>4.0.0</version>
    </dependency>              
    <!-- spring xml bean配置 -->
    <bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xxx.xxx,com.xxx.yyyy" />
        <property name="properties">
            <value>
                mappers=tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.common.special.InsertListMapper
            </value>
        </property>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
    <!--mybatis config配置 -->
    <?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>

          <!-- myBatis本身的配置,开启下划线驼峰自动转换 -->
          <setting name="mapUnderscoreToCamelCase" value="true" />
        </settings>

        <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="true"/>  
                <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->  
                <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->  
                <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->  
                <!-- 不理解该含义的前提下,不要随便复制该配置 -->  
                <property name="params" value="pageNum=start;pageSize=limit;"/>  
                <!-- 支持通过Mapper接口参数来传递分页参数 -->  
                <property name="supportMethodsArguments" value="true"/>  
                <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->  
                <property name="returnPageInfo" value="check"/>  
            </plugin>  
        </plugins> 
    </configuration>

     model使用方法

    //指定表明
    @Table(name = "t_order")
    public class Order implements Serializable {
        //指定主键
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
    }

    Mapper使用方法

    import tk.mybatis.mapper.common.Mapper;
    //自己定义一个接口继承Mapper方便自己定义规则  , InsertListMapper<T> 批量插入  mysql支持  
    public interface BaseMapper<T> extends Mapper<T> , InsertListMapper<T>{
    
    }
    
    //然后自己定义一mapper集成BaseMapper
    public interface OrderMapper extends BaseMapper<Order> {
        
                
    
    }

    以上配置完成,单表的增删改查就不需要自己去写xml方法实现了,直接可以通过 点  出来方法使用

    分页插件使用

    PageHelper是基于当前线程进行分页操作
    page从1开始

    import com.github.pagehelper.PageHelper;

    
    //分页,根据默认配置
    PageHelper.startPage(page,pageSize);
    //分页 查询总数 不返回大于页码的数据 PageHelper.startPage(page,pageSize ,
    true,false);
    //分页 查询总数 如果页码大于最大页,返回最后一页数据
    PageHelper.startPage(page,pageSize ,true,true);

    结果集返回 com.github.pagehelper.Page 对象
  • 相关阅读:
    Windows SDK编程(Delphi版) 之 应用基础,楔子
    一个小问题引发的论证思考
    Delphi 组件开发教程指南(7)继续模拟动画显示控件
    用PyInstaller将python转成可执行文件exe笔记
    使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
    Microsof Office SharePoint 2007 工作流开发环境搭建
    How to monitor Web server performance by using counter logs in System Monitor in IIS
    LINQ之Order By
    window 性能监视器
    内存泄露检测工具
  • 原文地址:https://www.cnblogs.com/binz/p/6564490.html
Copyright © 2011-2022 走看看