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 对象
  • 相关阅读:
    HDU 2955 Robberies(01背包)
    HDU 2602 Bone Collector(01背包)
    HUST 1352 Repetitions of Substrings(字符串)
    HUST 1358 Uiwurerirexb jeqvad(模拟解密)
    HUST 1404 Hamming Distance(字符串)
    HDU 4520 小Q系列故事――最佳裁判(STL)
    HDU 2058 The sum problem(枚举)
    【破解】修改程序版权、添加弹窗
    HDU 1407 测试你是否和LTC水平一样高(枚举)
    HDU 1050 Moving Tables(贪心)
  • 原文地址:https://www.cnblogs.com/binz/p/6564490.html
Copyright © 2011-2022 走看看