pagehelp 配置oracle_mybatisplus pagehelp oracle 分页 - CSDN
精华内容
参与话题
  • SpringBoot使用PageHelper进行分页

    万次阅读 2017-11-17 17:04:51
    因为SpringBoot就是为了实现没有配置文件,因此之前手动在Mybatis中配置的PageHelper现在需要重新配置,而且配置方式与之前的SSM框架中还是有点点区别。

       因为SpringBoot就是为了实现没有配置文件,因此之前手动在Mybatis中配置的PageHelper现在需要重新配置,而且配置方式与之前的SSM框架中还是有点点区别。

       首先需要在pom文件中加入

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>0.1.0</version>
    </dependency>

       然后在SpringBoot的配置文件application.yml中加入如下配置:

    pagehelper:
        helperDialect: sqlserver
        reasonable: true
        supportMethodsArguments: true
        pageSizeZero: true
        params: count=countSql      

       目前Pagehelper插件支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页,不同数据库只需要修改helperDialect就行。

       java代码中的使用如下:

      PageHelper.startPage(page, rows); 
      List<Map> list = testService.find();
      PageInfo<Map> pageInfo = new PageInfo<>(list);

       第一行是设置页数和每页显示几条,插件会自动对接下来的sql语句加上分页方式。PageInfo中是分页的一些信息,包括总页数,当前页,总数据等。

    展开全文
  • PageHelper5.0在oracle数据库中使用

    千次阅读 2019-05-22 13:38:26
    原理: pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息,所以在多...

     

    原理:

            pageHelper会使用ThreadLocal获取到同一线程中的变量信息,各个线程之间的Threadlocal不会相互干扰,也就是Thread1中的ThreadLocal1之后获取到Tread1中的变量的信息,不会获取到Thread2中的信息,所以在多线程环境下,各个Threadlocal之间相互隔离,可以实现,不同thread使用不同的数据源或不同的Thread中执行不同的SQL语句,所以,PageHelper利用这一点通过拦截器获取到同一线程中的预编译好的SQL语句之后将SQL语句包装成具有分页功能的SQL语句,并将其再次赋值给下一步操作,所以实际执行的SQL语句就是有了分页功能的SQL语句。

     

    使用方法

    1.加jar包

     

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.0.0</version>
    </dependency>

    2.在db.xml配置文件中<property id="plugins"></property>节点配置相关的内容(采用的是oracle数据库,5.0以上的pagehelper采用的是helperDialect=oracle

     

     

    <!--配置 MyBatis factory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations">
            <array>
                <value>classpath*:mapper/*.xml</value>
    
    <!--配置 MyBatis factory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations">
            <array>
                <value>classpath*:mapper/*.xml</value>
            </array>
        </property>
        <property name="typeAliasesPackage"
                  value="
          com.wisemax.common.dto,
          com.wisemax.sm.dto,
          com.wisemax.lim.dto,
          com.wisemax.hnrb.dto"/>
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <value>
                            helperDialect=oracle
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>
    
     

    3.pageHelper的使用,采用test类进行测试!

     

    1.测试中PageHelper.startPage(3,10)传人的参数是当前页码,和每页显示的条数。

    2.根据条件查询对应的List,最后将List扔进到Pageinfo的构造方法中。

    3.最终返回给页面的的List是PageInfo中的List,通过getList()获得对应的返回集合即可。

    4.如果前端页面需要总的条数。直接使用a.getTotal()得到的即是符号查询条件的总条数目。

    
    @Test
    public void Select() {
        PageHelper.startPage(3, 10);
        List<HnrbUser> list = hnrbAppInfosMapperl.queryUserByPgeHelper();
        PageInfo<HnrbUser> a = new PageInfo<>(list);
        System.out.println(" a = " + a.toString());
        System.out.println(a.getTotal());
        for (HnrbUser s:a.getList()
             ) {
            System.out.println("UserName" + s.getUserName());
        }
    }

    对应的sql为下图所示。由于是测试,所以对应的查询条件为空,Sql中不设置对应的分页信息。(之前使用的是rownum 作为一个字段,然后根据分页信息大于小于该字段。现在使用pageHelper不需要rownum了)

     

     

    <select id="queryUserByPgeHelper" resultType="com.wisemax.hnrb.dto.HnrbUser" >
      select user_name as userName FROM COM_T_USER ORDER by user_name desc
    </select>

    运行上面的test方法控制台输出的内容为下图所示。

     

     

     

    展开全文
  • pom文件 ...配置时,可以使用下面的缩写值:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby特别注意:使用 SqlServer2012 数据库时,需...

    pom文件

     

     

     

    yml:

     

    参数对应内容如下:

     

    1. helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:
      oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
      特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。
      你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。

    2. offsetAsPageNum:默认值为 false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为 true 时,会将 RowBounds 中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。

    3. rowBoundsWithCount:默认值为false,该参数对使用 RowBounds 作为分页参数时有效。 当该参数设置为true时,使用 RowBounds 分页会进行 count 查询。

    4. pageSizeZero:默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)。

    5. reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

    6. params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero

    7. supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest

    8. autoRuntimeDialect:默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 (不支持自动选择sqlserver2012,只能使用sqlserver),用法和注意事项参考下面的场景五

    9. closeConn:默认值为 true。当使用运行时动态数据源或没有设置 helperDialect 属性自动获取数据库类型时,会自动获取一个数据库连接, 通过该属性来设置是否关闭获取的这个连接,默认true关闭,设置为 false 后,不会关闭获取的连接,这个参数的设置要根据自己选择的数据源来决定。

     

    代码使用如下:

     

    展开全文
  • SpringBoot集成PageHelper(Oracle数据库)

    千次阅读 2019-06-16 18:43:56
    2019独角兽企业重金招聘Python工程师标准>>> ...

    参考网页

    https://blog.csdn.net/gnail_oug/article/details/80229542

    集成步骤

    Pom

    <!-- pagehelper -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.5</version>
    </dependency>

    application.properties配置文件

    ########################################## pagehelper分页插件配置
    pagehelper.helperDialect=oracle
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    Controller

        @Autowired
        private UserService userService;
        
       @RequestMapping(value = "/getUsers", method = RequestMethod.GET)
        @ApiOperation(value = "查询", notes = "分页查询用户", produces = "application/json")
       public PageInfo<User> getUsers(@RequestParam(value = "jsonString") String jsonString,
                               HttpServletRequest request) throws Exception{
          //整理参数
          UserQuery query = null;
            try {
               query = JsonUtil.parseJson(jsonString, UserQuery.class);
            } catch (Exception e) {
                return null;
            }
    
          Integer pageNo = query.getPageNo() == null?1:query.getPageNo();
          Integer pageSize = query.getPageSize() == null?10:query.getPageSize();
          PageHelper.startPage(pageNo,pageSize);
          PageInfo<User> pageInfo = new PageInfo<>(userService.getUsers(query));
            return pageInfo;
       }

    Service

    @Autowired
    private UserMapper userMapper;
    
    public Page<User> getUsers(UserQuery query){
        Page<User> userList = userMapper.getUsers(query);
        return userList;
    }

    Mapper

    Page<User> getUsers(UserQuery query);

    ★几点说明

    application.properties配置文件中支持的数据库类型

    目前Pagehelper插件支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页,不同数据库只需要修改helperDialect就行。

    Oracle数据库写法

    ########################################## pagehelper分页插件配置
    pagehelper.helperDialect=oracle
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    MySQL数据库写法

    ########################################## pagehelper分页插件配置
    pagehelper.helperDialect=mysql
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    SQLServer数据库写法

    ########################################## pagehelper分页插件配置
    pagehelper.helperDialect=sqlserver
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    Page类说明

    Page是com.github.pagehelper包里的类,它是java.util.ArrayList的子类。

    需要注意的是,分页代码PageHelper.startPage(pageNo,pageSize);只对其后的第一个查询有效。

    转载于:https://my.oschina.net/u/3866531/blog/2249986

    展开全文
  • pagehelper配置 多数据源自动切换数据库方言 mysql/sqlserver/oracle等数据库 1,加入maven <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper&...
  • Mybatis分页插件PageHelper的配置和使用方法 前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录...
  • public List&lt;Map&lt;String, Object&gt;&gt; getCarByNo(String plateno, int pagenum, int pagesize) { // TODO Auto-generated method stub List&lt;Map&... S...
  • PageHelper的使用(完全舍弃mybatis配置文件) 导入坐标 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>x.x.x&...
  • 使用的是PageHelp插件 1.添加依赖 &lt;!--PageHelp分页--&gt; &lt;dependency&gt; &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt; &lt;artifactId&gt;...
  • Spring插件之PageHelper(一)的配置

    千次阅读 2018-05-07 19:05:04
    一、简介 ...如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。 本项目在 github 的项目地址:https://github.com/pagehelper/Mybatis-PageHelper 本项目在 gitosc 的项目地址:http://git....
  • 总之,可以手动配置,也可以不手动配置,PageHelper会自动分辨出数据库类型(支持的范围内) 并且mybatis是count先select后,也就是说count出数据才会继续select,这点避免了无效查询,有时候光看日志时这点容易被...
  • springboot配置pagehelper不生效(依然全查) PageHelper 是一个非常好用的插件,但是在用的时候会出现一些小问题,影响我们的使用,最直接的就是不生效,还是全查了,我们就开始各种百度了,直接的就是看看 版本号...
  • spring中pagehelp的使用方法

    千次阅读 2017-07-16 10:08:58
    (2):修改mybatis.xml配置的信息: //name:不用进行改变;value=”mysql”你所使用的数据库类型【mysql/oracle】 该参数默认为false 设置为true时,会将RowBounds第一个参数offset当成pageNu
  • PageHelper(依赖,配置文件)

    千次阅读 2018-10-14 15:51:18
    分页插件(依赖,配置文件) 版本控制 &lt;properties&gt; &lt;spring.version&gt;5.0.2.RELEASE&lt;/spring.version&gt; &lt;spring.security.version&gt;5.0.1.RELEASE&lt;/...
  • maven导包:<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version></dependency>...dependency...
  • PageHelper对达梦数据库分页,由于项目需求使用达梦DM数据库,但是PageHelper没有支持DM的方言,哪位老哥实现重写PageHelper了?
  • 接上篇,从springboot+mybatis的搭建,到连接数据库,再到现在,配置分页插件功能配置此处利用pagehelper实现自动分页功能第一步pom文件配置 &lt;!-- mybatis分页插件pagehelp 数据驱动 --&gt; &lt;...
  • 相对于单数据源,PageHelper分页插件,几乎不用而配置即可使用,而双数据源切换会导致语法报错。 PageHelper分页插件需要设定一个默认的数据库源,而SqlServer、mysql的部分语法不同。例如先用mysql查询时,分页...
  • <configuration> <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> &l...
  • 随着不断地学习,了解到的官方提供的辅助工具越来越多,在我们拥有这些工具之后,大大的简化了我们的开发,下面小编来介绍一下PageHelper的配置使用吧 1.官方教程是在mybatis-config.xml文件中配置标签 <?xml...
1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

pagehelp 配置oracle