Hbase Phoenix 分页

原创 2016年08月31日 15:59:26

全部为mybatis.xml 内容

1.创建表

	<insert id="createTable">
		create table if not exists "FVE_VoucherStorage"
		(
		"fid" varchar not null primary key,
		"cf"."fvoucherCode" varchar,
		"cf"."fdate" varchar,
		"cf"."frgnId" varchar,
		"cf"."fyear" varchar,
		"cf"."fvoucherTypeId" varchar,
		"cf"."fisValid" varchar,
		"cf"."fvoucherVersion" varchar,
		"cf"."fcreateTime" varchar,
		"cf"."foriginContent" varchar,
		"cf"."fcontent" varchar,
		"cf"."fflagId" varchar,
		"cf"."foriginCode" varchar,
		"cf"."fagenName" varchar,
		"cf"."frowId" bigint
		)
	</insert>
*注意frowId字段,用于存储自增序列

2.创建实体类

    这个没有什么说的,普通的实体类而已

3.建立sequence(自增序列)

	<insert id="sequence">CREATE SEQUENCE SEQ</insert>
4.插入数据

<insert id="insertVoucher" parameterType="com.domain.VoucherStorage">
		upsert into
		"FVE_VoucherStorage"("fid","fvoucherCode","fdate","frgnId","fyear","fvoucherTypeId","fisValid","fvoucherVersion","fcreateTime",
		"foriginContent","fcontent","fflagId","foriginCode","frowId")values(
		#{fid},#{fvoucherCode},#{fdate},#{frgnId},#{fyear},#{fvoucherTypeId},#{fisValid},#{fvoucherVersion},#{fcreateTime},
		#{foriginContent},#{fcontent},#{fflagId},#{foriginCode},NEXT VALUE FOR
		SEQ)
	</insert>
*注意NEXT VALUE FOR SEQ 这句话,将自增序列添加给frowId
5查询语句

<select id="selectByCondition" parameterType="map"
		resultType="com.domain.VoucherStorage">
		select * from
		"FVE_VoucherStorage"
		where 1=1 
		<if test="fisValid!=null and fisValid!=''">
		<![CDATA[
		and "fisValid" = #{fisValid}
			]]>
		</if>
		<if test="fvoucherTypeId!=null and fvoucherTypeId!=''">
		<![CDATA[
        and  "fvoucherTypeId" =#{fvoucherTypeId} 
		]]>
		</if>
		<if test="beginDate!=null and beginDate!=''">
		<![CDATA[
		 and "fdate" >= #{beginDate}
		]]>
		</if>
		<if test="endDate!=null and endDate!=''">
		<![CDATA[
		 and "fdate" <= #{endDate}
		]]>
		</if>
		<if test="frowId!=null and frowId!=''">
		<![CDATA[
		 and "frowId">=#{frowId}
		]]>
		</if>
		ORDER BY
		"frowId" ASC LIMIT #{pageSize}
		
	</select>

查询时,将pageSize设置为页数+1,多余出的一条记录中的frowId作为下一页查询的条件实现分页查询。


  


SQL on HBase -- phoenix 之分页查询

最近一个项目中使用了HBase,有一部分实时查询的需求。HBase本身只有一种排序,即按照rowkey的字典升序来排序数据。然而我们常常会碰到各种各样的排序需求。         对于简单的需...

Phoenix Tips (10) 分页查询

组合使用order SELECT title, author, isbn, description FROM library WHERE published_date > 2010 ...

PHOENIX操作HBASE

HBase,一个NoSQL数据库,可存储大量非关系型数据。 HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作。HBase虽然是一个数据库,但是它的查...
  • aillymo
  • aillymo
  • 2016年05月28日 10:40
  • 10207

SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成

Phoenix:Phoenix将SQL查询语句转换成多个scan操作,并编排执行最终生成标准的JDBC结果集。   Spring将数据库访问的样式代码提取到JDBC模板类中,JDBC模板还...

SHDP--Working with HBase(三)之HBase+Phoenix实现分页

先简单讲讲只用HBase来实现分页的思路: HBase利用scan来扫描表,通过startKey,stopKey来确定扫描范围,在需要进行分页时可以结合HBase提供的PagefFilter过滤扫描...

Phoenix+HBase使用心得

Phoenix+HBase使用心得: 1.没有database,只有schema,schema不能够显式建立,只能够随表一起建立;schema中的表被删除时,对应的schema亦一同被删除。(可以...

HBASE+PHOENIX性能优化注解

hbase环境配置优化: 几个配置参数: hbase.hregion.max.filesize: 1)当hbase.hregion.max.filesize比较小时,触发split的机率更大,而sp...

浅谈Spark几种不同的任务提交相关脚本(以Spark 1.5.0为例)

本节主要内容 spark-shell spark-submit spark-sql spark-class 总结 1. spark-shellspark-shell脚本文件内容如下:#!/usr/bi...

hbase java api 访问 查询、分页

  • 2016年11月24日 16:54
  • 29.47MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hbase Phoenix 分页
举报原因:
原因补充:

(最多只允许输入30个字)