阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成

135次阅读
没有评论

共计 3296 个字符,预计需要花费 9 分钟才能阅读完成。

介绍:Phoenix 查询引擎会将 SQL 查询转换为一个或多个 HBase scan,并编排执行以生成标准的 JDBC 结果集。直接使用 HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。更多参考官网:http://phoenix.apache.org/

Phoenix 实现了 JDBC 的驱动,使用 Phoenix JDBC 和普通的数据库(Mysql)JDBC 一样, 也可以通过 Spring JDBCTemplate 的方式,将数据库的操作模块化,以及进行数据源,事物方面的管理。

实现步骤如下:
(1)关于 Phoenix 与 Hbase 的整合请参考:
编写 pom.xml

  <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>4.3.0</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

(2) 如果是 Windows 的开发环境,配置 C:\Windows\System32\drivers\etc\hosts 文件,添加 develop5 的配置

192.168.199.242  develop5

(3) 配置 Spring 配置文件

<?xml version=”1.0″ encoding=”UTF-8″?>
<beans
        xmlns=”http://www.springframework.org/schema/beans”
        xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
        xmlns:context=”http://www.springframework.org/schema/context”
        xsi:schemaLocation=”http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd

    <bean id=”phoenixJdbcTemplate”
          class=”org.springframework.jdbc.core.JdbcTemplate”>
        <constructor-arg ref=”phoenixDataSource”/>
        <qualifier value=”phoenixJdbcTemplate”></qualifier>
    </bean>

    <bean id=”baseInterfacePonenixImpl” class=”com.eric.monitor.dao.impl.HBaseBaseDAOImpl”>
        <property name=”jdbcTemplate” ref=”phoenixJdbcTemplate”/>
    </bean>

    <context:component-scan base-package=”com.eric.monitor.dao.impl”/>
    <context:component-scan base-package=”com.eric.monitor.service.impl”/>

    <bean id=”phoenixDataSource” class=”org.apache.commons.dbcp.BasicDataSource”>
        <property name=”driverClassName” value=”org.apache.phoenix.jdbc.PhoenixDriver”/>
        <property name=”url” value=”jdbc:phoenix:develop5″/>
        <property name=”username” value=””/>
        <property name=”password” value=””/>
        <property name=”initialSize” value=”20″/>
        <property name=”maxActive” value=”0″/>
        <!– 因为 Phoenix 进行数据更改时不会自动的 commit, 必须要添加 defaultAutoCommit 属性, 否则会导致数据无法提交的情况 –>
        <property name=”defaultAutoCommit” value=”true”/>
    </bean>
</beans>

(3) 编写 Java 程序

import com.eric.common.framework.dao.HBaseDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 类描述
 *
 * @author aihua.sun
 * @date 2015/3/9
 * @since V1.0
 */

@Repository
public class HBaseBaseDAOImpl implements HBaseDao {

    private JdbcTemplate jdbcTemplate;
    public HBaseBaseDAOImpl(JdbcTemplate template) {
        this.jdbcTemplate = template;
    }
    public HBaseBaseDAOImpl() {
        super();

    }
  public List query(String querySql) {
        return jdbcTemplate.query(querySql);
    }

    @Override
    public void update(String querySql) {
        System.out.println(querySql);
        jdbcTemplate.update(querySql);
    }

    @Override
    public void batchUpdate(String updateSQL) {
        System.out.println(“##########BATCH UPDATE:”+updateSQL);
        jdbcTemplate.batchUpdate(updateSQL);
    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    @Autowired
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-03/115273.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3296字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中