- 浏览: 2265436 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:Mybatis物理分页插件(目前mybatis下最好的物理分页)
使用方式:http://my.oschina.net/miemiedev/blog/135516
项目git地址:https://github.com/miemiedev/mybatis-paginator
miemiedev还提供了一系列针对mybatis的插件,项目首页:https://github.com/miemiedev
简单示例:
在Maven中加入依赖:
<dependencies>
...
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.15</version>
</dependency>
...
</dependencies>
Mybatis配置文件添加分页插件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<plugins>
<plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>
</plugin>
</plugins>
</configuration>
注:如果使用mybatis-spring来整合mybatis,也可以这样配置(主要是加载分页插件)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/mybatis/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:/mybatis/common/*-*.xml</value>
<value>classpath*:/mybatis/${jdbc.dialect}/*-*.xml</value>
</list>
</property>
<property name="plugins">
<list>
<bean class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property>
</bean>
</list>
</property>
</bean>
创建一个查询,内容可以是任何Mybatis表达式,包括foreach和if等:
<select id="findByCity" resultType="map">
select * from TEST_USER where city = #{city};
</select>
Dao中的方法或许是这样(用接口也是类似):
public List findByCity(String city, PageBounds pageBounds){
Map<String, Object> params = new HashMap<String, Object>();
params.put("city",city);
return getSqlSession().selectList("db.table.user.findByCity", params, pageBounds);
}
调用方式(分页加多列排序):
int page = 1; //页号
int pageSize = 20; //每页数据条数
String sortString = "age.asc,gender.desc";//如果你想排序的话逗号分隔可以排序多列
PageBounds pageBounds = new PageBounds(page, pageSize , Order.formString(sortString));
List list = findByCity("BeiJing",pageBounds);
//获得结果集条总数
PageList pageList = (PageList)list;
System.out.println("totalCount: " + pageList.getPaginator().getTotalCount());
PageList类是继承于ArrayList的,这样Dao中就不用为了专门分页再多写一个方法。
使用PageBounds这个对象来控制结果的输出,常用的使用方式一般都可以通过构造函数来配置。
new PageBounds();//默认构造函数不提供分页,返回ArrayList
new PageBounds(int limit);//取TOPN操作,返回ArrayList
new PageBounds(Order... order);//只排序不分页,返回ArrayList
new PageBounds(int page, int limit);//默认分页,返回PageList
new PageBounds(int page, int limit, Order... order);//分页加排序,返回PageList
new PageBounds(int page, int limit, List<Order> orders, boolean containsTotalCount);//使用containsTotalCount来决定查不查询totalCount,即返回ArrayList还是PageList
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:config/mapper/**/*.xml"/>
<property name="plugins">
<list>
<bean class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property>
</bean>
</list>
</property>
</bean>
楼主, nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor
根据配置,一直报错,不能初始化OffsetLimitInterceptor这个类。。求大神指导
使用方式:http://my.oschina.net/miemiedev/blog/135516
项目git地址:https://github.com/miemiedev/mybatis-paginator
miemiedev还提供了一系列针对mybatis的插件,项目首页:https://github.com/miemiedev
简单示例:
在Maven中加入依赖:
<dependencies>
...
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.15</version>
</dependency>
...
</dependencies>
Mybatis配置文件添加分页插件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<plugins>
<plugin interceptor="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.OracleDialect"/>
</plugin>
</plugins>
</configuration>
注:如果使用mybatis-spring来整合mybatis,也可以这样配置(主要是加载分页插件)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:/mybatis/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations">
<list>
<value>classpath*:/mybatis/common/*-*.xml</value>
<value>classpath*:/mybatis/${jdbc.dialect}/*-*.xml</value>
</list>
</property>
<property name="plugins">
<list>
<bean class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property>
</bean>
</list>
</property>
</bean>
创建一个查询,内容可以是任何Mybatis表达式,包括foreach和if等:
<select id="findByCity" resultType="map">
select * from TEST_USER where city = #{city};
</select>
Dao中的方法或许是这样(用接口也是类似):
public List findByCity(String city, PageBounds pageBounds){
Map<String, Object> params = new HashMap<String, Object>();
params.put("city",city);
return getSqlSession().selectList("db.table.user.findByCity", params, pageBounds);
}
调用方式(分页加多列排序):
int page = 1; //页号
int pageSize = 20; //每页数据条数
String sortString = "age.asc,gender.desc";//如果你想排序的话逗号分隔可以排序多列
PageBounds pageBounds = new PageBounds(page, pageSize , Order.formString(sortString));
List list = findByCity("BeiJing",pageBounds);
//获得结果集条总数
PageList pageList = (PageList)list;
System.out.println("totalCount: " + pageList.getPaginator().getTotalCount());
PageList类是继承于ArrayList的,这样Dao中就不用为了专门分页再多写一个方法。
使用PageBounds这个对象来控制结果的输出,常用的使用方式一般都可以通过构造函数来配置。
new PageBounds();//默认构造函数不提供分页,返回ArrayList
new PageBounds(int limit);//取TOPN操作,返回ArrayList
new PageBounds(Order... order);//只排序不分页,返回ArrayList
new PageBounds(int page, int limit);//默认分页,返回PageList
new PageBounds(int page, int limit, Order... order);//分页加排序,返回PageList
new PageBounds(int page, int limit, List<Order> orders, boolean containsTotalCount);//使用containsTotalCount来决定查不查询totalCount,即返回ArrayList还是PageList
评论
3 楼
abcd2745
2016-03-25
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:config/mapper/**/*.xml"/>
<property name="plugins">
<list>
<bean class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
<property name="dialectClass" value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property>
</bean>
</list>
</property>
</bean>
楼主, nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor
根据配置,一直报错,不能初始化OffsetLimitInterceptor这个类。。求大神指导
2 楼
voven2000
2016-03-15
dao代码在哪里?
1 楼
yuchao86
2015-12-04
你好,用接口怎么实现呢?
发表评论
-
数据库连接池选型
2014-12-04 18:32 1174关键字:数据库连接池选型 proxool(与spring不太 ... -
atomikos(com.atomikos.icatch.SysException: Error in init(): Log already in use)
2014-10-15 13:12 8536关键字:atomikos(com.atomikos.icatc ... -
mybatis级联查询的两种配置方式(很多人问我,这里给出答案)
2014-08-11 23:39 5074关键字:mybatis级联查询的两种方式 第一种配置方式: ... -
Mybatis 打印SQL(sql)
2014-02-28 13:26 2837关键字:Mybatis 打印SQL(sql) ####### ... -
ibatis泛型dao(spring SqlMapClientTemplate支持)
2011-12-04 21:11 3740关键字:ibatis泛型dao(spring SqlMapC ... -
跟踪 C3p0 连接池连接泄漏之参数优化与日志分析
2011-09-13 11:48 11310<property name="un ... -
Hibernate注释大全收藏
2011-06-22 15:00 907关键字:Hibernate注释大全收藏 声明实体Bean ... -
hibernate调用MySql存储过程
2011-06-21 09:38 2598关键字:hibernate调用MySql存储过程 Java ... -
hibernate hql where语句拼接工具类
2011-05-27 01:18 3558附件是:hibernate hql where语句拼接工具类 ... -
Hibernate Mysql注解设置自动增长列
2011-05-08 05:14 10120@Entity @Table(name = "T_P ... -
hibernate二级缓存(包括注解方式)
2011-04-11 20:33 12279二级缓存配置(spring+hibernate) 说明:本人 ... -
Hibernate泛型DAO(结合spring模板支持)
2011-03-31 19:49 986详细介绍 Hibernate 泛 ... -
hibernate注解
2011-03-31 15:35 57附件是hibernate注解相关资料。 -
Eclipse中配置及使用iBATIS插件—ibator
2011-03-17 18:37 3732ibator,大快人心,以下对其配置及使用做个简单介绍. 一 ... -
Hibernate帮助文档及API
2011-03-05 22:16 2108附件是:Hibernate帮助文档及API,欢迎下载学习。 -
如何配置hibernate二级缓存呢?
2011-01-31 17:16 972配置二级缓存网站推荐: http://www.ineeke. ... -
String之HibernateTemplate经典查询
2010-12-08 15:49 1938一、find(String queryString); ... -
Hibernate之Criteria使用经典
2010-12-08 14:32 1008创建一个Criteria 实例 org.hibernate. ... -
SchemaExport工具实战(hibernate)
2010-12-05 15:30 1157SchemaExport工具实战 通常我们使用生成数据库架构 ... -
Hibernate条件查询(DetachedCriteria)
2010-11-21 01:28 1782Hibernate条件查询(DetachedCriteria) ...
相关推荐
而“mybatis物理分页插件”是针对MyBatis设计的一个扩展,用于解决在大数据量查询时的性能问题,通过实现物理分页来避免内存溢出。 物理分页是指在数据库层面进行分页,相比于逻辑分页(在应用层进行数据截取),...
3. **分页插件**:PageHelper是常用的MyBatis分页插件,它能自动处理物理分页。在项目的pom.xml中引入PageHelper依赖,然后在MyBatis的配置文件中启用插件,并设置相关属性,如dialect(数据库类型)。 4. **Spring...
这个插件专门为MyBatis设计,旨在提供高性能的物理分页解决方案。 首先,物理分页与逻辑分页的区别在于,物理分页直接在数据库层面进行,通过SQL语句的LIMIT和OFFSET或者ROWNUM等关键字来限制返回的数据量,避免了...
自己写的一个mybatis物理分页插件,支持mysql,oracle,db2,ms sql server2005-2008和ms sql server2012, 由于sql server2005的分页比较独特, 暂时只支持单order by 的情况, 多个order by会报错 , mysql,oracle,db2完美...
<... PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- value="mssql|oracle|mysql|db2" --> </configuration>
MyBatis 分页插件是 MyBatis 框架中的一个重要组件,它允许开发者在进行数据查询时实现高效的分页功能,而无需修改原有的 SQL 查询语句或 DAO 层代码,因此被称为“非入侵式”。这个插件的源码分析可以帮助我们深入...
标题中的“mybatis不改源码实现物理分页”指的是在使用MyBatis这个流行的Java持久层框架时,如何在不修改MyBatis核心源码的情况下实现数据库的物理分页功能。物理分页是直接在数据库层面进行分页查询,通常更高效,...
Mybatis 分页插件 PageHelper5.0.0 是一个功能强大且易于使用的分页插件,它可以帮助开发者快速实现 Mybatis 的物理分页操作。下面是使用 PageHelper5.0.0 实现分页的详细教程: 一、添加依赖 首先,在 pom.xml ...
该插件目前支持以下数据库的物理分页: 1、Oracle 2、Mysql 3、MariaDB 4、SQLite 5、Hsqldb 6、PostgreSQL 7、DB2 8、SqlServer(2005+) 9、Informix 10、H2 11、SqlServer2012 12、Derby 13、Phoenix 14、达梦...
【MyBatis PageHelper分页插件Demo详解】 在Java Web开发中,数据查询往往涉及到大量的数据量,这时分页查询就显得尤为重要。MyBatis PageHelper插件是一款专为MyBatis设计的高效分页插件,它可以无缝对接Spring ...
MyBatis的物理分页插件如MyBatis-Plus或PageHelper可以提供这样的功能。只需一行代码,就可以实现对SQL Server 2005、2008,Oracle和MySQL等数据库的分页支持。 例如,在使用PageHelper插件时,你可以在Mapper接口...
Mybatis PageHelper是一款针对Mybatis框架的高效分页插件,它极大地简化了在Mybatis中实现分页查询的复杂性。PageHelper插件通过自动处理SQL语句,实现了数据库的兼容性,支持多种主流数据库如MySQL、Oracle、DB2等...
在本项目中,我们主要探讨的是如何在IntelliJ IDEA(IDEA)环境下,整合Spring、Mybatis和SpringMVC(SSM)框架,并利用PageHelper分页插件实现高效的数据分页。以下是对这些技术及其整合过程的详细说明: 1. **...
【标题】"pagehelper-fix/pagehelper 淘淘商城MyBatis分页插件" 描述了一个特定的应用场景,即在淘淘商城项目中使用了PageHelper分页插件来优化MyBatis的数据库查询操作。PageHelper是针对MyBatis的一个强大而灵活的...
com.github.pagehelper.PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件。
在本项目中,"Spring+mybatis+PageHelper分页插件"的组合是一个常见的Java后端开发架构,用于构建高效、便捷的数据分页功能。下面将详细解释这些技术及其结合方式。 首先,Spring是一个开源的Java应用框架,它提供...
一种是使用自定义的拦截器,例如PaginationInterceptor.java,它可以在执行SQL前自动添加LIMIT和OFFSET子句,实现物理分页。另一种方式是通过Mapper接口和Page对象,比如PagingByCount.java和PagingByExampl.java,...
分页插件通过拦截Mybatis的`StatementHandler`接口来实现数据库层面的物理分页。当执行SQL查询时,`StatementHandler`负责解析和准备SQL语句。拦截这个阶段,我们可以动态修改SQL语句,添加分页相关的SQL片段,从而...
1. **基于插件的分页**:MyBatis 提供了一个 PageHelper 插件,它可以方便地实现物理分页。首先,你需要在 Maven 或 Gradle 的依赖中添加 PageHelper 的依赖,然后在 MyBatis 的配置文件中启用该插件。PageHelper ...