zoukankan      html  css  js  c++  java
  • MyBatis

    1.PageHelpler分页插件使用

    官方文档:中文

    1.1 引入插件

    1.1.1 引入的jar

    pagehelper-5.1.6.jar
    jsqlparser-1.2.jar

    1.1.2 maven

    在 pom.xml 中添加如下依赖:

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>最新版本</version>
    </dependency>
    

    1.2 配置拦截器插件

    1. 在 MyBatis 配置 xml 中配置拦截器插件

    <!-- 
        plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
        properties?, settings?, 
        typeAliases?, typeHandlers?, 
        objectFactory?,objectWrapperFactory?, 
        plugins?, 
        environments?, databaseIdProvider?, mappers?
    -->
    <plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
            <property name="param1" value="value1"/>
    	</plugin>
    </plugins>
    

    2. 在 Spring 配置文件中配置拦截器插件

    使用 spring 的属性配置方式,可以使用 plugins 属性像下面这样配置:

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
      <!-- 注意其他配置 -->
      <property name="plugins">
        <array>
          <bean class="com.github.pagehelper.PageInterceptor">
            <property name="properties">
              <!--使用下面的方式配置参数,一行配置一个 -->
              <value>
                params=value1
              </value>
            </property>
          </bean>
        </array>
      </property>
    </bean>
    

    2.批量执行 BatchExecutor

    2.1 ExecutorType.BATCH 使用

    2.2 和spring整合

    SqlSessionTemplate简介

    <!--配置一个sqlsession的批量操作-->
      <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg  name="sqlSessionFactory" ref="sqlSessionFactory" />
        <constructor-arg  name="executorType" value="BATCH" />
      </bean>
    

    调用

    @Service
    public class employeeService {
    
        @Autowired
        private employeeMapper employeeMapper;
    
        @Autowired
        private SqlSession sqlSession;
    
        public List<employee> getemps() {
            return employeeMapper.getEmployees();
        }
    
        //批量
        public List<employee> getempsByBatch() {
            employeeMapper mapper = sqlSession.getMapper(employeeMapper.class);
            return mapper.getEmployees();
        }
    }
    

    3. 自定义TypeHandler处理 enum 类型

    <!-- 注册自定义类型处理器 -->
    <typeHandlers>
        <typeHandler handler="twm.mybatisdemo.type.AddressTypeHandler" />
    </typeHandlers>
    

    【MyBatis学习17】用typeHandlers处理enum类型

    原来在configuration里的标签,必须按照提示的这个顺序写,不然就报错。
    因此typeHandlers必须放在environments前面,typeAliases后面。
    回顾一下,是不是感觉跟序列化/反序列化这套路很相似?

  • 相关阅读:
    c++ string 和wstring 之间的互相转换函数
    Duilib教程-自动布局3-分隔条
    Duilib教程-自动布局2
    Duilib教程-自动布局1
    Duilib教程-非DUI控件
    Duilib教程-控件练习
    Duilib教程-HelloDuilib及DuiDesigner的简单使用
    Duilib教程-简单介绍
    把資源加载到内存中 BMP 出错
    LoadLibrary失敗,GetLastError 返回127錯誤
  • 原文地址:https://www.cnblogs.com/tangge/p/9590241.html
Copyright © 2011-2022 走看看