zoukankan      html  css  js  c++  java
  • MybatisPlus学习笔记7:插件的配置

    MP提供了很多好用的插件,而且配置简单,使用方便。接下来一起看看MP的插件如何使用。

    1、分页插件:

    之前就有说到,BaseMapper的selectPage方法和AR提供的selectPage方法都不是物理分页,需要配置分页插件后才是物理分页,那么现在就来看看如何配置这个插件。
    在sqlSessionFactory这个bean中,通过配置插件,接下来的所有插件都配置在这个list中。

    <!-- 3、配置mybatisplus的sqlSessionFactory -->
        <bean id="sqlSessionFactory" class=
                           "com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="configLocation" value="classpath:mybatis-config.xml"/>
            <property name="typeAliasesPackage" value="com.zhu.mybatisplus.entity"/>
            <!-- 注入全局配置 -->
            <property name="globalConfig" ref="globalConfiguration"/>
            <!-- 配置插件 -->
            <property name="plugins">
                <list>
                    <!-- 分页插件 -->
                    <bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"/>
                </list>
            </property>
        </bean>
    

    或者放在mybatis-config.xml中进行配置

    @Test
        public void testPage() {
            //配置了分页插件后,还是和以前一样的使用selectpage方法,
            //但是现在就是真正的物理分页了,sql语句中有limit了
            Page<Employee> page = new Page<>(1, 2);
            List<Employee> employeeList =
                    emplopyeeDao.selectPage(page, null);
            System.out.println(employeeList);
            System.out.println("================= 相关的分页信息 ==================");
            System.out.println("总条数:" + page.getTotal());
            System.out.println("当前页码:" + page.getCurrent());
            System.out.println("总页数:" + page.getPages());
            System.out.println("每页显示条数:" + page.getSize());
            System.out.println("是否有上一页:" + page.hasPrevious());
            System.out.println("是否有下一页:" + page.hasNext());
            //还可以将查询到的结果set进page对象中
            page.setRecords(employeeList);
        }
    

    物理分页:

    也可以通过page调用相关方法获取到相关的分页信息,而且还可以把查询到的结果set回page对象中,方便前端使用。

    2、性能分析插件

    在plugin的list中添加如下bean即可开启性能分析插件:

    <!-- 输出每条SQL语句及其执行时间,生产环境不建议使用该插件 -->
     <bean class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor">
            <property name="format" value="true"/><!-- 格式化SQL语句 -->
            <property name="maxTime" value="1000"/><!-- sql执行时间超过value值就会停止执行,
                                                       单位是毫秒 -->
     </bean>
    

    这个性能分析插件配置了两个属性,
    第一个是格式化sql语句,设置为true后,sql语句格式就像上面的截图中的一样;
    第二个属性是sql语句执行的最大时间,超过value值就会报错,这里表示超过1000毫秒就会停止执行sql语句。

    3、执行分析插件

    <!-- 如果是对全表的删除或更新操作,就会终止该操作 -->
    <bean class="com.baomidou.mybatisplus.plugins.SqlExplainInterceptor">
           <property name="stopProceed" value="true"/>
    </bean>
    

    这个插件配置了一个属性,stopProceed设置为true后,如果执行的是删除表中全部内容,那就会抛出异常,终止该操作。
    该插件主要是防止手抖误删数据。

    @Test
    public void testSqlExplain(){
            //条件为null,就是删除全表,执行分析插件会终止该操作
        emplopyeeDao.delete(null);
    }
    

  • 相关阅读:
    vs2017中信号与槽连接
    生成格雷码
    结构光三维测量技术
    格雷码生成算法
    结构光三维重建
    Qt之CMake和MinGW编译OpenCV
    qt+opencv编译环境的配置
    vs2017+opencv配置参考链接
    2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)
    2019-3-22c# TextBox只允许输入数字,禁用右键粘贴,允许Ctrl+v粘贴数字
  • 原文地址:https://www.cnblogs.com/xidianzxm/p/12607468.html
Copyright © 2011-2022 走看看