`
tom_seed
  • 浏览: 322147 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MyBatis Oracle与MySQL分页

 
阅读更多

Oracle、MySQL分页实例

  • SQL执行代码
ORACLE:
SELECT * FROM (
	SELECT ROWNUM AS NUMROW, Z.* from (
		select * from CHANNEL T where 1=1 and T.ID = 1 ORDER BY T.ID desc 
	) Z  where rownum<=10
) WHERE NUMROW >= 1 


MySQL:获取(0 ,10],10表示向后获取10条数据。
select * from fm_sell T 
where 1=1 and T.SERIAL_NUM = '20141124' ORDER BY T.ID desc LIMIT 0, 10

 

  • Mybatis中分页应用与优化
Oracle:
<sql id="WhereClase">
	<where>
		1=1
		<if test="id != null">
			AND T.ID = #{id,jdbcType=BIGINT}
		</if>
		...
	</where>
</sql>

<sql id="OrderBy">
	ORDER BY T.ID desc 
</sql>

<sql id="PageSQLHead">
	SELECT * FROM (SELECT ROWNUM AS NUMROW, Z.* from (
</sql>

<sql id="PageSQLFoot">
	<![CDATA[ ) Z  where rownum<=#{pageLastItem}) WHERE NUMROW >= #{pageFristItem} ]]>
</sql>

<select id="queryCount" parameterClass="ChannelQuery" resultClass="java.lang.Integer">
	select count(1) from CHANNEL T
	<include refid="WhereClase"/>
	<include refid="OrderBy"/>
</select>

<select id="queryPage" parameterClass="ChannelQuery" resultMap="channelResult">
	<include refid="PageSQLHead" />
	select
	<include refid="Base_Column_List" />
	from CHANNEL T
	<include refid="WhereClase" />
	<include refid="OrderBy" />
	<include refid="PageSQLFoot" />
</select>

 

MySQL:
<resultMap id="BaseResultMap" type="fmSell">
	<id column="ID" property="id" jdbcType="BIGINT" />
	<result column="SERIAL_NUM" property="serialNum" jdbcType="VARCHAR" />
	...
</resultMap>

<sql id="Base_Column_List">
	T.ID, T.SERIAL_NUM, T.STOCK_ID, T.GMT_CREATE, T.GMT_MODIFY
</sql>

<sql id="WhereClase">
	<where>
		1=1
		<if test="serialNum != null and serialNum != ''">
			AND T.SERIAL_NUM = #{serialNum,jdbcType=VARCHAR}
		</if>
		...
	</where>
</sql>

<!-- 分页起始 -->
<sql id="GetPagerSql">
	LIMIT #{pageIndex}, #{pageSize}
</sql>

<sql id="OrderBy">
	ORDER BY T.ID desc 
</sql>

<!-- 分页记录 -->
<select id="selectPagerByQuery" parameterType="fmSellQuery" resultMap="BaseResultMap">
	SELECT <include refid="Base_Column_List" />
	FROM fm_sell T
	<include refid="WhereClase"/>
	<include refid="OrderBy"/>
	<include refid="GetPagerSql"/>
</select>

<!-- 总记录数 -->
<select id="selectCountsByQuery" parameterType="fmSellQuery" resultType="java.lang.Integer">
	SELECT COUNT(1) FROM fm_sell T
	<include refid="WhereClase"/>
	<include refid="OrderBy"/>
</select>
分享到:
评论

相关推荐

    SpringBoot+mybatis+Oracle整合代码

    SpringBoot与MyBatis是两个在Java开发领域广泛使用的开源框架。SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。当这两个框架与...

    springboot+mybatisplus(mybatis)+mysql+oracle 多数据源项目

    在本项目中,我们主要探讨的是如何利用Spring Boot框架与Mybatis Plus进行多数据源的配置和管理,同时结合MySQL和Oracle两种不同的数据库系统。这是一个典型的企业级应用场景,能够帮助开发者更好地理解和处理多...

    MyBatis 最简单的分页

    例如,可以使用`LIMIT`和`OFFSET`来实现MySQL的分页,或者在Oracle等数据库中使用`ROWNUM`。例如: ```xml SELECT * FROM YourTableName WHERE yourCondition LIMIT #{start}, #{limit} ``` 其中,`#{...

    mybatis代码生成工具,支持oracle、mysql分页,批量增删改操作(独家定制)

    mybatis代码生成工具,源于mybatis-generator-gui ,个人定制开发 新增支持oracle分页,批量增删改操作。 下载解压即可,作为开发人员,相信你一看就知道怎么用。ui桌面界面操作,方便快捷。

    sql分页(sqlserver,mysql,oracle )

    不同的数据库系统,如SQL Server、MySQL、Oracle,由于其设计原理和语法的不同,在实现分页功能上也有所差异。下面将详细介绍这三种数据库系统的分页方法。 ### SQL Server 分页 SQL Server 中实现分页主要通过`...

    SpringMVC+Mybatis实现的Mysql分页数据查询的示例

    SpringMVC+Mybatis实现的Mysql分页数据查询的示例 本篇文章主要介绍了SpringMVC+Mybatis实现的Mysql分页数据查询的示例,具有一定的参考价值,有兴趣的可以了解一下。在这个示例中,我们将使用SpringMVC作为前端...

    MyBatis 分页

    只需一行代码,就可以实现对SQL Server 2005、2008,Oracle和MySQL等数据库的分页支持。 例如,在使用PageHelper插件时,你可以在Mapper接口的方法中这样定义: ```java List&lt;User&gt; findAll(@Param("page") Page...

    Mybatis PageHelper(Mybatis分页插件) v5.0 最新免费版.rar

    PageHelper插件通过自动处理SQL语句,实现了数据库的兼容性,支持多种主流数据库如MySQL、Oracle、DB2等。在v5.0版本中,它提供了最新的特性和优化,确保了更好的性能和用户体验。 PageHelper的核心功能包括: 1. ...

    mybatis分页插件源码

    MyBatis分页插件的工作原理是动态插入SQL,它会在执行查询语句之前,根据数据库类型(如MySQL或Oracle)动态生成合适的分页SQL。例如,对于MySQL,它会将原SQL语句转换为带有LIMIT和OFFSET的分页SQL;对于Oracle,...

    springboot+mybatis+druid+分页插件

    在MyBatis中,有多种分页插件可以选择,例如PageHelper插件,它支持多种数据库(如MySQL、Oracle、SQLServer等)的分页,并且可以方便地与SpringBoot整合。 集成SpringBoot、MyBatis、Druid和分页插件的具体步骤...

    Spring与Mybatis整合&&aop整合pageHelper分页插件

    PageHelper分页插件则是Mybatis中的一个实用工具,可以方便地对查询结果进行分页处理。接下来,我们将详细讨论这些知识点。 首先,Spring是一个全面的后端开发框架,它提供了依赖注入(Dependency Injection,DI)...

    利用Spring MVC+Mybatis实现Mysql分页数据查询的过程详解

    在本文中,我们将深入探讨如何使用Spring MVC和MyBatis框架来实现MySQL数据库的分页数据查询。首先,我们需要理解分页在...注意,不同数据库(如Oracle与MySQL)的分页语法可能存在差异,需要根据实际情况调整SQL语句。

    mybatis分页插件代码

    - **智能分页**:根据数据库类型自动选择合适的分页方式,如Oracle的ROWNUM、MySQL的LIMIT等。 - **参数自动设置**:在编写SQL时无需手动添加分页参数,PageHelper会自动处理。 - **多数据源支持**:可以方便地在...

    Mybatis分页拦截器

    3. 自定义分页逻辑:根据不同的数据库(如MySQL、Oracle等),拦截器需要处理不同的分页语法。 4. 兼容性测试:由于不同的Mybatis版本可能有不同的API或行为,因此需要确保拦截器在目标版本下正常工作。 在压缩包...

    mybatis+springmvc分页

    对于Oracle数据库,它的分页方式不同于MySQL的LIMIT和OFFSET,而是使用ROWNUM伪列。在Mybatis的SQL中,我们可以使用子查询和ROWNUM配合来实现分页,例如: ```xml SELECT * FROM ( SELECT t.*, ROWNUM rn FROM ...

    oracle mysql分页源码

    Oracle 和 MySQL 都提供了各自的分页解决方案。本文将深入探讨这两种数据库在分页方面的实现方式,并结合源码分析来阐述其工作原理。 Oracle 分页: 1. ROWNUM关键字:Oracle 中最基础的分页方式是通过ROWNUM伪列...

    Mybatis3分页代码

    Mybatis3提供了多种方式来实现分页,适用于MySQL和Oracle等不同的数据库系统。 在MySQL中,分页查询通常通过LIMIT和OFFSET关键字实现。LIMIT用于指定返回结果的数量,OFFSET则用于跳过多少行。例如,如果我们想获取...

    mybatis分页jar包

    自己封装的mybatis分页jar包,实现了mybatis的物理分页,目前只支持mysql和oracle两种数据库。

    mybatis物理分页插件

    而“mybatis物理分页插件”是针对MyBatis设计的一个扩展,用于解决在大数据量查询时的性能问题,通过实现物理分页来避免内存溢出。 物理分页是指在数据库层面进行分页,相比于逻辑分页(在应用层进行数据截取),...

    Mybatis通用分页插件

    1. **智能分页**:根据不同的数据库(如MySQL、Oracle、SQL Server等)自动生成对应的分页SQL,无需手动编写LIMIT或ROWNUM等分页语句。 2. **支持多种Mybatis环境**:无论是Mybatis的原生环境,还是Spring Boot、...

Global site tag (gtag.js) - Google Analytics